(Scoped) classloading in ESB / SoapUIException not found
camunda Feb 17, 2010 4:12 AMHey 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