2 Replies Latest reply on Dec 22, 2006 10:51 AM by Eric Green

    NoClassDefFoundError: org/jboss/axis/encoding/ser/BaseSerial

    Eric Green Newbie

      Hello,

      I am currently experiencing a perplexing error in attempting to run a straight Axis1.1 client on JBoss3.2.8. I have scoured the web for 2 days to productive end.

      Here is my stack trace caught in createCall() in my soapbindingstub when invoked:

      java.lang.NoClassDefFoundError: org/jboss/axis/encoding/ser/BaseSerializerFactory
       at java.lang.ClassLoader.defineClass0(Native Method)
       at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
       at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
       at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
       at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
       at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
       at java.security.AccessController.doPrivileged(Native Method)
       at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
       at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
       at java.lang.Class.forName0(Native Method)
       at java.lang.Class.forName(Class.java:219)
       at org.apache.axis.utils.ClassUtils$2.run(ClassUtils.java:200)
       at java.security.AccessController.doPrivileged(Native Method)
       at org.apache.axis.utils.ClassUtils.loadClass(ClassUtils.java:179)
       at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:120)
       at org.apache.axis.deployment.wsdd.WSDDTypeMapping.getSerializer(WSDDTypeMapping.java:2
       at org.apache.axis.deployment.wsdd.WSDDDeployment.deployMapping(WSDDDeployment.java:372
       at org.apache.axis.deployment.wsdd.WSDDDeployment.getTypeMappingRegistry(WSDDDeployment
       at org.apache.axis.configuration.FileProvider.getTypeMappingRegistry(FileProvider.java:
       at org.apache.axis.AxisEngine.getTypeMappingRegistry(AxisEngine.java:325)
       at org.apache.axis.MessageContext.getTypeMappingRegistry(MessageContext.java:479)
       at org.apache.axis.client.Call.getTypeMapping(Call.java:2399)
       at org.apache.axis.client.Call.registerTypeMapping(Call.java:2436)
       at org.apache.axis.client.Call.registerTypeMapping(Call.java:2465)
       at com.amd.mte.axis.service.MTEWSSoapBindingStub.createCall(MTEWSSoapBindingStub.java:2
       at com.amd.mte.axis.service.MTEWSSoapBindingStub.get(MTEWSSoapBindingStub.java:303)
       at com.amd.catalyst.fdc.MTEInterface.retrieveData(MTEInterface.java:139)
       at com.amd.catalyst.fdc.MTEInterface.<init>(MTEInterface.java:54)
       at com.amd.catalyst.jacl.JCatalyst.FDCMTEInterface.test(FDCMTEInterface.java:52)
       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:324)
       at tcl.lang.reflect.PkgInvoker.invokeMethod(PkgInvoker.java:128)
       at tcl.lang.JavaInvoke.call(JavaInvoke.java:304)
       at tcl.lang.JavaInvoke.callMethod(JavaInvoke.java:161)
       at tcl.lang.ReflectObject.cmdProc(ReflectObject.java:916)
       at tcl.lang.Interp.callCommand(Interp.java:1266)


      I have noted that:

      org.jboss.axis.encoding.ser.BaseSerializerFactory


      is present in the JBoss 4.0.2+ soap stack, but I am NOT using 4.0.2+

      I have reviewed:

      http://www.jboss.org/?module=bb&op=viewtopic&p=3876437
      http://wiki.jboss.org/wiki/Wiki.jsp?page=WebServiceStacks

      MY QUESTION: Where is the reference coming from in my 3.2.8 deployment to:

      org.jboss.axis.encoding.ser.BaseSerializerFactory


      ??

      There are no references to the org.jboss.axis package in any of the Axis code. This is has perplexed me (and colleagues) for the last 48+ hours (almost straight).

      I would greatly appreciate any knowledge shared.





        • 1. Re: NoClassDefFoundError: org/jboss/axis/encoding/ser/BaseSe
          Eric Green Newbie

          Oops - the second sentence above should read "I have scoured the web to NO productive end".

          • 2. Re: NoClassDefFoundError: org/jboss/axis/encoding/ser/BaseSe
            Eric Green Newbie

            The error occurs on the below call: _call.registerTypeMapping(cls, qName, sf, df, false);

            private org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
             try {
             org.apache.axis.client.Call _call =
             (org.apache.axis.client.Call) super.service.createCall();
             if (super.maintainSessionSet) {
             _call.setMaintainSession(super.maintainSession);
             }
             if (super.cachedUsername != null) {
             _call.setUsername(super.cachedUsername);
             }
             if (super.cachedPassword != null) {
             _call.setPassword(super.cachedPassword);
             }
             if (super.cachedEndpoint != null) {
             _call.setTargetEndpointAddress(super.cachedEndpoint);
             }
             if (super.cachedTimeout != null) {
             _call.setTimeout(super.cachedTimeout);
             }
             if (super.cachedPortName != null) {
             _call.setPortName(super.cachedPortName);
             }
             java.util.Enumeration keys = super.cachedProperties.keys();
             while (keys.hasMoreElements()) {
             java.lang.String key = (java.lang.String) keys.nextElement();
             _call.setProperty(key, super.cachedProperties.get(key));
             }
             // All the type mapping information is registered
             // when the first call is made.
             // The type mapping information is actually registered in
             // the TypeMappingRegistry of the service, which
             // is the reason why registration is only needed for the first call.
             synchronized (this) {
             if (firstCall()) {
             // must set encoding style before registering serializers
             _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
             _call.setEncodingStyle(org.apache.axis.Constants.URI_SOAP11_ENC);
             for (int i = 0; i < cachedSerFactories.size(); ++i) {
             java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
             javax.xml.namespace.QName qName =
             (javax.xml.namespace.QName) cachedSerQNames.get(i);
             java.lang.Class sf = (java.lang.Class)
             cachedSerFactories.get(i);
             java.lang.Class df = (java.lang.Class)
             cachedDeserFactories.get(i);
             _call.registerTypeMapping(cls, qName, sf, df, false);
             }
             }
             }
             return _call;
             }
             catch (java.lang.Throwable t) {
             throw new org.apache.axis.AxisFault("Failure trying to get the Call object", t);
             }
             }