Dear, axis-user

There is a problem when I use axis2 1.4.1, hope you can help me to solve it.

Here is the problem details, I use the JBoss cache 3.0.2 with the axis2, and 
put the JBoss cache lib files into the service lib directory, then packed the 
service file in the axis2.war file and deployed in Tomcat 6.0.18. 

There is no problem with just one Tomcat node, but when I try to start up the 
second node, the following exception thrown:

org.jboss.cache.CacheException: java.lang.reflect.InvocationTargetException
        at 
org.jboss.cache.util.reflect.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:148)
        at 
org.jboss.cache.factories.ComponentRegistry$PrioritizedMethod.invoke(ComponentRegistry.java:1012)
        at 
org.jboss.cache.factories.ComponentRegistry.internalStart(ComponentRegistry.java:778)
        at 
org.jboss.cache.factories.ComponentRegistry.start(ComponentRegistry.java:632)
        at 
org.jboss.cache.invocation.CacheInvocationDelegate.start(CacheInvocationDelegate.java:345)
        at 
bupt.cache.jboss.BookCacheJBOSSImpl.<init>(BookCacheJBOSSImpl.java:32)
        at bupt.cache.BookService.<clinit>(BookService.java:21)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at 
org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.<init>(DefaultSchemaGenerator.java:157)
        at 
org.apache.axis2.deployment.util.Utils.fillAxisService(Utils.java:524)
        at 
org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:386)
        at 
org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(ArchiveReader.java:102)
        at 
org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:144)
        at 
org.apache.axis2.deployment.ServiceDeployer.deploy(ServiceDeployer.java:81)
        at 
org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136)
        at 
org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:597)
        at 
org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144)
        at 
org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:330)
        at 
org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:227)
        at 
org.apache.axis2.deployment.DeploymentEngine.loadServices(DeploymentEngine.java:131)
        at 
org.apache.axis2.deployment.WarBasedAxisConfigurator.loadServices(WarBasedAxisConfigurator.java:284)
        at 
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:82)
        at 
org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:516)
        at 
org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:436)
        at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
        at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
        at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
        at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
        at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
        at 
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
        at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
        at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at 
org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        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:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.reflect.InvocationTargetException
        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:597)
        at 
org.jboss.cache.util.reflect.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:144)
        ... 50 more
Caused by: org.jboss.cache.CacheException: Unable to fetch state on startup
        at org.jboss.cache.RPCManagerImpl.start(RPCManagerImpl.java:355)
        ... 55 more
Caused by: org.jboss.cache.CacheException: java.lang.ClassNotFoundException: 
org.jboss.cache.Fqn
        at 
org.jboss.cache.statetransfer.DefaultStateTransferIntegrator.integrateTransientState(DefaultStateTransferIntegrator.java:251)
        at 
org.jboss.cache.statetransfer.DefaultStateTransferIntegrator.integrateState(DefaultStateTransferIntegrator.java:113)
        at 
org.jboss.cache.statetransfer.DefaultStateTransferManager.setState(DefaultStateTransferManager.java:199)
        at 
org.jboss.cache.statetransfer.DefaultStateTransferManager.setState(DefaultStateTransferManager.java:163)
        at 
org.jboss.cache.remoting.jgroups.ChannelMessageListener.setState(ChannelMessageListener.java:296)
        at 
org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.handleUpEvent(MessageDispatcher.java:714)
        at 
org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:776)
        at org.jgroups.JChannel.up(JChannel.java:1226)
        at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:462)
        at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:443)
        at 
org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.connectToStateProvider(STREAMING_STATE_TRANSFER.java:488)
        at 
org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.handleStateRsp(STREAMING_STATE_TRANSFER.java:453)
        at 
org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.up(STREAMING_STATE_TRANSFER.java:211)
        at org.jgroups.protocols.FRAG2.up(FRAG2.java:192)
        at org.jgroups.protocols.pbcast.GMS.up(GMS.java:796)
        at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:233)
        at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:616)
        at org.jgroups.protocols.UNICAST.up(UNICAST.java:282)
        at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:747)
        at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:167)
        at org.jgroups.protocols.FD.up(FD.java:284)
        at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:308)
        at org.jgroups.protocols.MERGE2.up(MERGE2.java:144)
        at org.jgroups.protocols.Discovery.up(Discovery.java:263)
        at org.jgroups.protocols.PING.up(PING.java:270)
        at org.jgroups.protocols.TP.passMessageUp(TP.java:1277)
        at org.jgroups.protocols.TP.access$100(TP.java:49)
        at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1830)
        at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1809)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: org.jboss.cache.Fqn
        at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
        at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at 
org.jboss.util.stream.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:81)
        at 
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at org.jboss.cache.marshall.NodeData.readExternal(NodeData.java:109)
        at 
org.jboss.cache.marshall.CacheMarshaller200.unmarshallObject(CacheMarshaller200.java:685)
        at 
org.jboss.cache.marshall.CacheMarshaller200.populateFromStream(CacheMarshaller200.java:875)
        at 
org.jboss.cache.marshall.CacheMarshaller200.unmarshallLinkedList(CacheMarshaller200.java:818)
        at 
org.jboss.cache.marshall.CacheMarshaller200.unmarshallObject(CacheMarshaller200.java:649)
        at 
org.jboss.cache.marshall.CacheMarshaller200.unmarshallObject(CacheMarshaller200.java:589)
        at 
org.jboss.cache.marshall.CacheMarshaller200.objectFromObjectStream(CacheMarshaller200.java:161)
        at 
org.jboss.cache.marshall.VersionAwareMarshaller.objectFromObjectStream(VersionAwareMarshaller.java:360)
        at 
org.jboss.cache.statetransfer.DefaultStateTransferIntegrator.readNodesAsList(DefaultStateTransferIntegrator.java:405)
        at 
org.jboss.cache.statetransfer.DefaultStateTransferIntegrator.integrateTransientState(DefaultStateTransferIntegrator.java:362)
        at 
org.jboss.cache.statetransfer.DefaultStateTransferIntegrator.integrateTransientState(DefaultStateTransferIntegrator.java:234)
        ... 31 more

I think this problem is caused by the classloader 
org.apache.catalina.loader.WebappClassLoader.loadClass, as you can see current 
classloader is WebappClassLoader, but I didn't put the JBoss Cache lib file in 
the Webapp's lib directory, so I tryed to put all the JBoss Cache lib files 
into the Webapp's lib directory, and the problem is gone, but I don't think it 
is the best solution for it since just the Axis2 service used the JBoss Cache, 
not for all modules in the Webapp, so could you tell me what can I do for this? 
Then I can put the third party libs in the Axis2 service lib directory.

Thanks in advance.

Best regards,        

Xu Ouyang

Reply via email to