Uploaded image for project: 'Axis2'
  1. Axis2
  2. AXIS2-2972

Vague error produced for ServiceClient invocation within a service where class pathing is a problem

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Not A Problem
    • Affects Version/s: 1.2
    • Fix Version/s: None
    • Component/s: databinding, deployment
    • Labels:
      None
    • Environment:
      Running in windows XP under eclipse and with axis2 1.2 embedded under Jetty.

      Description

      The problem I have seen occurs when a component is not in the deployment directory, but is being referenced externally. Instead of encountering a ClassNotFoundException or similar, a vague error is produced when attempting to:

      1) create a ServiceClient within a service
      2) load a configuration context within a service

      The client was external to the jar because it will be used both remotely and as a part of the service. The text of the exception is misleading because the receivers in use as per the services.xml have nothing to do with those seen in the error.

      To create the error, simply attempt to create a new ServiceClient() in a class that is not contained within the deployment directory, but is referenced by a class in the deployment directory.

      The error seen is the following:
      java.lang.ClassCastException: org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver cannot be cast to org.apache.axis2.engine.MessageReceiver
      at org.apache.axis2.deployment.DescriptionBuilder.loadMessageReceiver(DescriptionBuilder.java:190)
      at org.apache.axis2.deployment.DescriptionBuilder$1.run(DescriptionBuilder.java:142)
      at org.apache.axis2.java.security.AccessController.doPrivileged(AccessController.java:130)
      at org.apache.axis2.deployment.DescriptionBuilder.processMessageReceivers(DescriptionBuilder.java:138)
      at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:92)
      at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:640)
      at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:105)
      at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:60)
      at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:174)
      at org.apache.axis2.client.ServiceClient.initializeTransports(ServiceClient.java:211)
      at org.apache.axis2.client.ServiceClient.configureServiceClient(ServiceClient.java:138)
      at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:133)
      at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:229)
      at com.test.client.BasicClient.<init>(BasicClient.java:76)
      at com.test.client.TestClient.<init>(TestClient.java:31)
      at com.test.client.servlet.TestServer.<init>(TestServer.java:452)
      at com.test.client.TestServer.getInstance(TestServer.java:65)
      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 com.test.client.ClientMessageHandler.init(ClientMessageHandler.java:51)
      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.apache.axis2.engine.DependencyManager.initServiceClass(DependencyManager.java:56)
      at org.apache.axis2.engine.DependencyManager.initService(DependencyManager.java:94)
      at org.apache.axis2.context.ConfigurationContextFactory.initApplicationScopeServices(ConfigurationContextFactory.java:91)
      at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:76)
      at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:486)
      at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:406)
      at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
      at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
      at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
      at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:617)
      at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
      at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
      at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
      at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
      at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
      at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)
      at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
      at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
      at org.mortbay.jetty.Server.doStart(Server.java:210)
      at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
      at com.test.TestServer.<init>(TestServer.java:52)
      at com.test.TestServer.main(TestServer.java:83)

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              lonerzzz Jason Kania
            • Votes:
              3 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: