Hi Brijesh,

I think the issue is due to the WLS classloader policy.

WebLogic Server classloading is centered on the concept of an application. An application is normally packaged in an Enterprise Archive (EAR) file containing application classes. Everything within an EAR file is considered part of the same application. The following may be part of an EAR or can be loaded as standalone applications:

    * An Enterprise JavaBean (EJB) JAR file
    * A Web application WAR file
    * A resource adapter RAR file

The classloader hierarchy is, by default:
WebApp -> EJB -> WLS main classloader.

Remember that one time you go up in the classloader hierarchy, it's not possible to come back down.

Nevertheless, you can define your classloader structure in the weblogic-application.xml using:

    <classloader-structure>
        <module-ref>
                <module-uri>ejb1.jar</module-uri>
        </module-ref>
        <module-ref>
                <module-uri>web3.war</module-uri>
        </module-ref>
        <classloader-structure>
                <module-ref>
                        <module-uri>web1.war</module-uri>
                </module-ref>
        </classloader-structure>
        <classloader-structure>
                <module-ref>
                        <module-uri>ejb3.jar</module-uri>
                </module-ref>
                <module-ref>
                        <module-uri>web2.war</module-uri>
                </module-ref>
                <classloader-structure>
                        <module-ref>
                                <module-uri>web4.war</module-uri>
                        </module-ref>
                </classloader-structure>
                <classloader-structure>
                        <module-ref>
                                <module-uri>ejb2.jar</module-uri>
                        </module-ref>
                </classloader-structure>
        </classloader-structure>
    </classloader-structure>

In your case, your don't have a ClassNotFoundException, you have a NoClassDefFoundError. It means that the class is found but not in the correct classloader.

Could you make a try using a global classloader for your EAR (not splitted by war/ejb) ?

Regards
JB

brijesh wrote:
hello ,
I did servicemix3.3.war deployment  in weblogic 10 as part of an other ear
file. I have service assembly which uses smx-scripting component as part of
workflow. When i am calling this service I am getting following fault
mesage,

<faultcode>soap:Server</faultcode>
         <faultstring>java.lang.NoClassDefFoundError:
groovy/lang/GroovyObject</faultstring>


When I deploy as war file , without using ear file this service assembly
works absoulutely fine. When I deploy war file as part of ear file i am
getting above mentioned error , complete error stack as below

org.apache.cxf.interceptor.Fault: java.lang.NoClassDefFoundError:
groovy/lang/GroovyObject
        at
org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:769)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
        at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:89)
        at
org.apache.servicemix.cxfbc.CxfBcConsumer$JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:631)
        at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:302)
        at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:265)
        at
org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
        at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
        at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:324)
        at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
        at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
        at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
Caused by: java.lang.Exception: java.lang.NoClassDefFoundError:
groovy/lang/GroovyObject
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:550)
        at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NoClassDefFoundError: groovy/lang/GroovyObject
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at
weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:338)
        at
weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:291)
        at
weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:259)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at
weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
        at
weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:35)
        at
org.apache.xbean.classloader.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:184)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at
org.apache.xbean.classloader.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:184)
        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:164)
        at
groovy.lang.MetaClassRegistry$MetaClassCreationHandle.create(MetaClassRegistry.java:81)
        at
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getGlobalMetaClass(MetaClassRegistryImpl.java:252)
        at
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.access$100(MetaClassRegistryImpl.java:45)
        at
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$LocallyKnownClasses.getFromGlobal(MetaClassRegistryImpl
        at
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$LocallyKnownClasses.getMetaClass(MetaClassRegistryImpl.
        at
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$MyThreadLocal.getMetaClass(MetaClassRegistryImpl.java:3
        at
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:265)
        at
org.codehaus.groovy.runtime.InvokerHelper.invokePojoMethod(InvokerHelper.java:765)
        at
org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:754)
        at
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:170)
        at Script1.run(Script1.groovy:24)
        at
com.sun.script.groovy.GroovyScriptEngine.eval(GroovyScriptEngine.java:243)
        at
com.sun.script.groovy.GroovyCompiledScript.eval(GroovyCompiledScript.java:46)
        at javax.script.CompiledScript.eval(CompiledScript.java:44)
        at
org.apache.servicemix.scripting.ScriptingEndpoint.process(ScriptingEndpoint.java:300)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
        ... 8 more


Any idea on this?
Regards
Brijesh N K

Reply via email to