CaArray module set up
From Informatics
The file for caarray component can be downloaded at \\Genome8\public\xiaoqing\caarray2\Caarray.zip.
Please unzip the file into your eclipse_workspace, then add the caarray project into your Eclipse.
The changes made in geworkbench-core:
- update CVS for the source.
- remove the lib/caArrayMageom folder.
- create lib/caarray2 folder.
- Move two jars commons-collections-3.2.jar and commons-lang-2.3.jar (inside the caarray/lib) into the new created folder lib/caarray2 in geworkbench-core.
- Update the geworkbench-core build path. Put above two jars on top of the classpath. Export both jars.
- Update the new caarray component class path including the jars inside its own lib folder.
- The caarray component can be invoked standalone using the main class:
org.geworkbench.components.caarray.arraydata.CaArray2Component.java
- Update the all.xml with the following plugin:
<plugin id="caArray2Panel" name="CaArray2" class="org.geworkbench.components.caarray.arraydata.CaArray2Component" source="caarray"> <gui-area name="VisualArea"/> </plugin>
Status
The code can be compiled with the above set up. But you will get the error message. Please check the end of this page to set up a runnable caArray.
[java] Server connection exception: gov.nih.nci.caarray.services.ServerConnectionException: Couldn't connect to the caArray server [java] gov.nih.nci.caarray.services.ServerConnectionException: Couldn't connect to the caArray server [java] at gov.nih.nci.caarray.services.CaArrayServer.connectToServer(CaArrayServer.java:175) [java] at gov.nih.nci.caarray.services.CaArrayServer.connect(CaArrayServer.java:129) [java] at org.geworkbench.components.caarray.arraydata.CaArray2Component.main(CaArray2Component.java:130) [java] at org.geworkbench.components.caarray.arraydata.CaArray2Component.saveButtonPressed(CaArray2Component.java:123) [java] at org.geworkbench.components.caarray.arraydata.CaArray2Component$1.actionPerformed(CaArray2Component.java:118) [java] at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849) [java] at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169) [java] at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) [java] at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) [java] at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234) [java] at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231) [java] at java.awt.Component.processMouseEvent(Component.java:5488) [java] at javax.swing.JComponent.processMouseEvent(JComponent.java:3093) [java] at java.awt.Component.processEvent(Component.java:5253) [java] at java.awt.Container.processEvent(Container.java:1966) [java] at java.awt.Component.dispatchEventImpl(Component.java:3955) [java] at java.awt.Container.dispatchEventImpl(Container.java:2024) [java] at java.awt.Component.dispatchEvent(Component.java:3803) [java] at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212) [java] at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892) [java] at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822) [java] at java.awt.Container.dispatchEventImpl(Container.java:2010) [java] at java.awt.Window.dispatchEventImpl(Window.java:1766) [java] at java.awt.Component.dispatchEvent(Component.java:3803) [java] at java.awt.EventQueue.dispatchEvent(EventQueue.java:463) [java] at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234) [java] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) [java] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) [java] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) [java] at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) [java] Caused by: javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory] [java] at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657) [java] at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247) [java] at javax.naming.InitialContext.init(InitialContext.java:223) [java] at javax.naming.InitialContext.<init>(InitialContext.java:197) [java] at gov.nih.nci.caarray.services.CaArrayServer.connectToServer(CaArrayServer.java:168) [java] ... 29 more [java] Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:200) [java] at java.security.AccessController.doPrivileged(Native Method) [java] at java.net.URLClassLoader.findClass(URLClassLoader.java:188) [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306) [java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:251) [java] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) [java] at java.lang.Class.forName0(Native Method) [java] at java.lang.Class.forName(Class.java:242) [java] at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:42) [java] at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654) [java] ... 33 more
If you remove all jars from the new caarray component and move them into the main lib folder except axis.jar, you still get an error message:
java.lang.NoClassDefFoundError: org/apache/axis/encoding/Deserializer at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:164) at $Proxy7.<clinit>(Unknown Source) at sun.reflect.GeneratedSerializationConstructorAccessor18.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Constructor.java:494) at java.io.ObjectStreamClass.newInstance(ObjectStreamClass.java:896) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1704) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) at java.rmi.MarshalledObject.get(MarshalledObject.java:135) at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:652) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587) at javax.naming.InitialContext.lookup(InitialContext.java:351) at gov.nih.nci.caarray.services.CaArrayServer.connectToServer(CaArrayServer.java:178) at gov.nih.nci.caarray.services.CaArrayServer.connect(CaArrayServer.java:132) at org.geworkbench.components.caarray.arraydata.DataSetDownloadClient.lookupExperiments(DataSetDownloadClient.java:248) at org.geworkbench.components.caarray.arraydata.CaArray2Component.receive(CaArray2Component.java:91) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.geworkbench.engine.management.ComponentRegistry$1.run(ComponentRegistry.java:374) at org.geworkbench.engine.management.Synchronous.addTask(Synchronous.java:19) at org.geworkbench.engine.management.ComponentRegistry.publishToSubscriberHelper(ComponentRegistry.java:392) at org.geworkbench.engine.management.ComponentRegistry.publish(ComponentRegistry.java:406) at org.geworkbench.engine.management.ComponentRegistry.access$1(ComponentRegistry.java:400) at org.geworkbench.engine.management.ComponentRegistry$ComponentExtension.intercept(ComponentRegistry.java:180) at org.geworkbench.builtin.projects.ProjectPanel$$EnhancerByCGLIB$$60aac370.publishCaArrayRequestEvent(<generated>) at org.geworkbench.builtin.projects.LoadData.publishCaArrayEvent(LoadData.java:512) at org.geworkbench.builtin.projects.util.CaARRAYPanel.publishCaArrayEvent(CaARRAYPanel.java:158) at org.geworkbench.builtin.projects.util.CaARRAYPanel$ConnectionTask.connect(CaARRAYPanel.java:842) at org.geworkbench.builtin.projects.util.CaARRAYPanel$ConnectionTask$1.run(CaARRAYPanel.java:723) at java.lang.Thread.run(Thread.java:595)
You may see different error messages if you tried to move some jars in the carray component lib folder. For example, if you save axis.jar and caarray-client.jar in component lib, others in core.
gov.nih.nci.caarray.services.ServerConnectionException: Couldn't connect to the caArray server
at gov.nih.nci.caarray.services.CaArrayServer.connectToServer(CaArrayServer.java:184)
at gov.nih.nci.caarray.services.CaArrayServer.connect(CaArrayServer.java:132)
at org.geworkbench.components.caarray.arraydata.CaArray2Component.receive(CaArray2Component.java:90)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.geworkbench.engine.management.ComponentRegistry$1.run(ComponentRegistry.java:374)
at org.geworkbench.engine.management.Synchronous.addTask(Synchronous.java:19)
at org.geworkbench.engine.management.ComponentRegistry.publishToSubscriberHelper(ComponentRegistry.java:392)
at org.geworkbench.engine.management.ComponentRegistry.publish(ComponentRegistry.java:406)
at org.geworkbench.engine.management.ComponentRegistry.access$1(ComponentRegistry.java:400)
at org.geworkbench.engine.management.ComponentRegistry$ComponentExtension.intercept(ComponentRegistry.java:180)
at org.geworkbench.builtin.projects.ProjectPanel$$EnhancerByCGLIB$$60aac370.publishCaArrayRequestEvent(<generated>)
at org.geworkbench.builtin.projects.LoadData.publishCaArrayEvent(LoadData.java:514)
at org.geworkbench.builtin.projects.util.CaARRAYPanel.publishCaArrayEvent(CaARRAYPanel.java:172)
at org.geworkbench.builtin.projects.util.CaARRAYPanel$ConnectionTask.connect(CaARRAYPanel.java:744)
at org.geworkbench.builtin.projects.util.CaARRAYPanel$ConnectionTask$1.run(CaARRAYPanel.java:699)
at java.lang.Thread.run(Thread.java:595)
Caused by: javax.naming.CommunicationException [Root exception is java.lang.ClassNotFoundException: gov.nih.nci.caarray.services.search.CaArraySearchService]
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:728)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at gov.nih.nci.caarray.services.CaArrayServer.connectToServer(CaArrayServer.java:178)
... 18 more
Caused by: java.lang.ClassNotFoundException: gov.nih.nci.caarray.services.search.CaArraySearchService
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:707)
at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:651)
at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:588)
at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628)
at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294)
at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238)
at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1500)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1463)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at java.rmi.MarshalledObject.get(MarshalledObject.java:135)
at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:652)
... 21 more
The only functional setup is listed below:
- Move all caarray related jars into the main lib (lib/caarray2, the new created folder) and add them on the top of build path.