LinkageError of EasyBeans classloader when invoking axis2-generated webservice client within an SLSB method (EJB2)
Our EAR-Java EE Application also contains AXIS2-generated Web-Service client stubs. These classes are used to invoke a remote web-service method from within a stateless session bean EJB (EJB2).
this works without any problem under JOnAS 4.10.x but since we upgraded to 5.1.5 we get the following ERROR:
{noformat}
2010-12-27 12:10:29,808 : SEVERE : http-8961-4 : JFactory.postInvoke : system exception raised by request:
java.lang.LinkageError: loader (instance of org/ow2/easybeans/loader/EasyBeansClassLoader): attempted duplicate class definition for name: "com/lbslogics/ims/mapping/WfGcWebServiceStub$SessionID"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at org.ow2.easybeans.loader.EasyBeansClassLoader.findClass(EasyBeansClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at org.ow2.easybeans.loader.EasyBeansClassLoader.loadClass(EasyBeansClassLoader.java:238)
at com.lbslogics.ims.mapping.WfGcWebServiceStubSessionID
Factory.parse(WfGcWebServiceStub.java:982)
at com.lbslogics.ims.mapping.WfGcWebServiceStubUserLoginResponse
Factory.parse(WfGcWebServiceStub.java:2845)
at com.lbslogics.ims.mapping.WfGcWebServiceStub.fromOM(WfGcWebServiceStub.java:4167)
at com.lbslogics.ims.mapping.WfGcWebServiceStub.userLogin(WfGcWebServiceStub.java:264)
at com.lbslogics.ims.mapping.WfGcWebServiceClient.handleLogin2ServiceApi(WfGcWebServiceClient.java:240)
at com.lbslogics.ims.mapping.WfGcWebServiceClient.geoCodeSingleItemInt(WfGcWebServiceClient.java:100)
at com.lbslogics.ims.mapping.WfGcWebServiceClient.geocodeSingleItem(WfGcWebServiceClient.java:82)
at com.lbslogics.ims.mapping.WfServiceProvider.geoCodeDataBatch(WfServiceProvider.java:365)
at com.lbslogics.ims.mapping.ejb.MappingServiceBean.prepareLocation(MappingServiceBean.java:449)
at com.lbslogics.ims.mapping.ejb.MappingServiceBean.refreshGeoCodeForObject(MappingServiceBean.java:6370)
at org.ow2.jonas_gen.com.lbslogics.ims.mapping.interfaces.JOnASMappingServiceBean642630297Remote.refreshGeoCodeForObject(JOnASMappingServiceBean642630297Remote.java:1839)
at com.lbslogics.ims.webapp.action.om.RefreshGeoCodeAction.execute(RefreshGeoCodeAction.java:53)
at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:283)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:166)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.lbslogics.ims.webapp.interceptor.SessionParamsInterceptor.intercept(SessionParamsInterceptor.java:102)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.lbslogics.ims.webapp.interceptor.CommonInfosInterceptor.intercept(CommonInfosInterceptor.java:123)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.lbslogics.ims.webapp.interceptor.AuthorizationInterceptor.intercept(AuthorizationInterceptor.java:106)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.TimerInterceptor.intercept(TimerInterceptor.java:63)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.webwork.lifecycle.RequestLifecycleFilter.doFilter(RequestLifecycleFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at jodd.servlet.filter.GzipFilter.doFilter(GzipFilter.java:80)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
at org.ow2.jonas.web.tomcat6.CheckOpenResourcesValve.invoke(CheckOpenResourcesValve.java:73)
at org.ow2.jonas.web.tomcat6.tx.TransactionValve.invoke(TransactionValve.java:90)
at org.ow2.jonas.web.tomcat6.ResetAuthenticationValve.invoke(ResetAuthenticationValve.java:88)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
{noformat}