1 Reply Latest reply on Feb 17, 2010 4:16 AM by Bernd Ruecker

    (Scoped) classloading in ESB / SoapUIException not found

    Bernd Ruecker Master

      Hey guys.

       

      I have a question about classloading in the JBoss ESB on  JBoss AS 4.2.3 (SOA-P). As described here (http://community.jboss.org/wiki/JBossESBDeploymentStrategies) and esb deployment can be switched to be a scoped deployment.

       

      Scoping deployment


      It is possible to scope the deployment of an esb artifact, if necessary, by including a loader-repository element within the deployment.xml. More information about this element can be found in ClassLoadingConfiguration, with an example of our integration available from within the ESB qa tests

       

      This implies that normal esb deployments are not scoped, which was my guess as well. True so far?

       

      But then I doesn't understand the following classloading problem. I access a WebService which is not available. This will raise a ConnectionRefused Exception which is wrapped in a SoapUIException. But when processing this exception and creating a fault message, the SoapUIException class is not found. See stacktrace below. But it is contained in the soapui-client.sar/lib/soapui-1.7.1.jar. Which should be accessible or not? The sar deployment doesn't specify classloader isolation as well.

       

      Any ideas to this?

       

      Thanks a lot

      Bernd

       

      11:06:43,717 ERROR [JmsServerSession] Unexpected error delivering message delegator->JBossMessage[5187194073974442]:PERSISTENT, deliveryId=0
      org.jboss.internal.soa.esb.message.format.DeferredDeserialisationException: Error constructing object value
           at org.jboss.internal.soa.esb.message.format.xml.marshal.MarshalValueImpl.getValue(MarshalValueImpl.java:89)
           at org.jboss.internal.soa.esb.message.format.xml.BodyImpl.unwrap(BodyImpl.java:281)
           at org.jboss.internal.soa.esb.message.format.xml.BodyImpl.get(BodyImpl.java:98)
           at org.jboss.internal.soa.esb.message.format.xml.FaultImpl.getCause(FaultImpl.java:66)
           at org.jboss.soa.esb.listeners.message.errors.Factory.createExceptionFromFault(Factory.java:45)
           at org.jboss.internal.soa.esb.couriers.helpers.JmsComposer.compose(JmsComposer.java:82)
           at org.jboss.soa.esb.listeners.jca.JcaJMSMessageAwareComposer.compose(JcaJMSMessageAwareComposer.java:50)
           at org.jboss.soa.esb.listeners.jca.JcaMessageAwareListener.process(JcaMessageAwareListener.java:160)
           at org.jboss.soa.esb.listeners.jca.JcaJMSInflowMessageProcessorAdapter.onMessage(JcaJMSInflowMessageProcessorAdapter.java:44)
           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.soa.esb.listeners.jca.BaseJcaInflow$1.invoke(BaseJcaInflow.java:205)
           at org.jboss.soa.esb.listeners.jca.EndpointProxy.delivery(EndpointProxy.java:242)
           at org.jboss.soa.esb.listeners.jca.EndpointProxy.invoke(EndpointProxy.java:145)
           at $Proxy78.onMessage(Unknown Source)
           at org.jboss.resource.adapter.jms.inflow.JmsServerSession.onMessage(JmsServerSession.java:178)
           at org.jboss.jms.client.container.ClientConsumer.callOnMessageStatic(ClientConsumer.java:160)
           at org.jboss.jms.client.container.SessionAspect.handleRun(SessionAspect.java:831)
           at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect16.invoke(SessionAspect16.java)
           at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
           at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
           at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
           at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
           at org.jboss.jms.client.delegate.ClientSessionDelegate.run(ClientSessionDelegate.java)
           at org.jboss.jms.client.JBossSession.run(JBossSession.java:199)
           at org.jboss.resource.adapter.jms.inflow.JmsServerSession.run(JmsServerSession.java:237)
           at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:213)
           at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275)
           at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:756)
           at java.lang.Thread.run(Thread.java:619)
      Caused by: org.jboss.soa.esb.UnmarshalException: java.lang.ClassNotFoundException: com.eviware.soapui.support.SoapUIException
           at org.jboss.internal.soa.esb.message.format.xml.marshal.SerializedMarshalUnmarshalPlugin.unmarshal(SerializedMarshalUnmarshalPlugin.java:114)
           at org.jboss.internal.soa.esb.message.format.xml.marshal.MarshalValueImpl.getValue(MarshalValueImpl.java:85)
           ... 31 more
      Caused by: java.lang.ClassNotFoundException: com.eviware.soapui.support.SoapUIException
           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:307)
           at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
           at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
           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.soa.esb.util.ClassUtil.forName(ClassUtil.java:93)
           at org.jboss.soa.esb.util.ContextObjectInputStream.resolveClass(ContextObjectInputStream.java:70)
           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.defaultReadFields(ObjectInputStream.java:1947)
           at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
           at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.jboss.internal.soa.esb.util.Encoding.decodeToObject(Encoding.java:77)
           at org.jboss.internal.soa.esb.message.format.xml.marshal.SerializedMarshalUnmarshalPlugin.unmarshal(SerializedMarshalUnmarshalPlugin.java:110)
           ... 32 more