You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Dmitriy Kiriy (JIRA)" <ji...@apache.org> on 2006/03/31 15:11:56 UTC
[jira] Commented: (AXIS2-537) Service classloader problem
[ http://issues.apache.org/jira/browse/AXIS2-537?page=comments#action_12372671 ]
Dmitriy Kiriy commented on AXIS2-537:
-------------------------------------
Deepal, can you please attach your sources and binary, so I can compare and identify the problem.
I can't attach mine, because they are under bank protection.
> Service classloader problem
> ---------------------------
>
> Key: AXIS2-537
> URL: http://issues.apache.org/jira/browse/AXIS2-537
> Project: Apache Axis 2.0 (Axis2)
> Type: Bug
> Components: core, deployment
> Versions: 0.95
> Environment: Bea Weblogic 8.1 SP5, All OS, Java 1.4.2_05
> Reporter: Dmitriy Kiriy
>
> I have axi2.war\WEB-INF\services\AssetService.aar
> in that file I have:
> org/apache/axis2/
> AssetServiceStub.class
> AssetServiceStub$1.class - AssetServiceStub$30.class
> AssetServiceSkeleton.class
> AssetServiceMessageReceiverInOut.class
> AssetServiceCallbackHandler.class
> com.mypackage/
> AssetServiceImpl (extends AssetServiceSkeleton)
> META-INF/
> services.xml
> AsserService.wsdl
> (<parameter locked="false" name="ServiceClass">
> com.mypackage.AssetServiceImpl
> </parameter>)
> All classes excluding com.mypackage.AssetServiceImpl was generated by WSDL2Java tool.
> We have a class loading problem. So, I little bit change AbstractMessageReceiver.java:
> protected Object makeNewServiceObject(MessageContext msgContext) throws AxisFault {
> try {
> AxisService service =
> msgContext.getOperationContext().getServiceContext().getAxisService();
> ClassLoader classLoader = service.getClassLoader();
> Parameter implInfoParam = service.getParameter(SERVICE_CLASS);
> if (implInfoParam != null) {
> try {
> Class implClass = classLoader.loadClass(((String) implInfoParam.getValue()));
> return implClass.newInstance();
> } catch (Throwable e)
> {
> System.err.println("While tring to load class "+(String) implInfoParam.getValue()+" got the following problem: "+e);
> e.printStackTrace(System.err);
> throw AxisFault.makeFault(new Exception(e));
> }
> } else {
> throw new AxisFault(Messages.getMessage("paramIsNotSpecified", "SERVICE_CLASS"));
> }
> } catch (Exception e) {
> throw AxisFault.makeFault(e);
> }
> }
> So, in lines:
> System.err.println("While tring to load class "+(String) implInfoParam.getValue()+" got the following problem: "+e);
> e.printStackTrace(System.err);
> throw AxisFault.makeFault(new Exception(e));
> I got:
> While tring to load class com.mypackage.AssetServiceImpl got the following problem: java.lang.NoClassDefFoundError: org/apache/axis2/AssetServiceSkeleton
> java.lang.NoClassDefFoundError: org/apache/axis2/AssetServiceSkeleton
> at java.lang.ClassLoader.defineClass(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;(Unknown Source)
> at java.security.SecureClassLoader.defineClass(Ljava/lang/String;[BIILjava/security/CodeSource;)Ljava/lang/Class;(SecureClassLoader.java:123)
> at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(Ljava/lang/String;)Ljava/lang/Class;(GenericClassLoader.java:480)
> at weblogic.utils.classloaders.GenericClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class;(GenericClassLoader.java:182)
> at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class;(ChangeAwareClassLoader.java:61)
> at java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;(Unknown Source)
> at java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;(Unknown Source)
> at java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;(Unknown Source)
> at java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;(Unknown Source)
> at java.lang.ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;(Unknown Source)
> at org.apache.axis2.receivers.AbstractMessageReceiver.makeNewServiceObject(Lorg/apache/axis2/context/MessageContext;)Ljava/lang/Object;(AbstractMessageReceiver.java:52)
> at org.apache.axis2.receivers.AbstractMessageReceiver.getTheImplementationObject(Lorg/apache/axis2/context/MessageContext;)Ljava/lang/Object;(AbstractMessageReceiver.java:95)
> at org.apache.axis2.AssetServiceMessageReceiverInOut.invokeBusinessLogic(Lorg/apache/axis2/context/MessageContext;Lorg/apache/axis2/context/MessageContext;)V(AssetServiceMessageReceiverInOut.java:24)
> at org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(Lorg/apache/axis2/context/MessageContext;)V(AbstractInOutSyncMessageReceiver.java:37)
> at org.apache.axis2.engine.AxisEngine.receive(Lorg/apache/axis2/context/MessageContext;)V(AxisEngine.java:408)
> at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(Lorg/apache/axis2/context/MessageContext;Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V(HTTPTransportUtils.java:288)
> at org.apache.axis2.transport.http.AxisServlet.doPost(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(AxisServlet.java:160)
> at javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(HttpServlet.java:760)
> at javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(HttpServlet.java:853)
> at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run()Ljava/lang/Object;(ServletStubImpl.java:1072)
> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lweblogic/servlet/internal/FilterChainImpl;)V(ServletStubImpl.java:465)
> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ServletStubImpl.java:348)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run()Ljava/lang/Object;(WebAppServletContext.java:6981)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic/security/subject/AbstractSubject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(Lweblogic/security/acl/internal/AuthenticatedSubject;Lweblogic/security/acl/internal/AuthenticatedSubject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;(SecurityManager.java:121)
> at weblogic.servlet.internal.WebAppServletContext.invokeServlet(Lweblogic/servlet/internal/ServletRequestImpl;Lweblogic/servlet/internal/ServletResponseImpl;)V(WebAppServletContext.java:3892)
> at weblogic.servlet.internal.ServletRequestImpl.execute(Lweblogic/kernel/ExecuteThread;)V(ServletRequestImpl.java:2766)
> at weblogic.kernel.ExecuteThread.execute(Lweblogic/kernel/ExecuteRequest;)V(ExecuteThread.java:224)
> at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:183)
> at java.lang.Thread.startThreadFromVM(Ljava/lang/Thread;)V(Unknown Source)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira