I have some web service classes written and packaged into .jars on a
Vista box.  Copied those .jar files up to an OpenVMS server with the
Axis2 port installed and classpath set to point at the relevant
lib/*.jar files.

When I run the code on Vista it's fine, but on OpenVMS I get this error:

Exception in thread "main" java.lang.NoSuchMethodError:
org.redacted.MyStub.addAnonymousOperations()V

(Including the V at the end -- not sure what that means?)

addAnonymousOperations() is defined in org.apache.Axis2.client.Stub.
I looked at the Axis2 API
(http://www.docjar.com/docs/api/org/apache/axis2/client/Stub.html#addAnonymousOperations)
and confirmed that, and I also used Eclipse to poke at the code and
wound up with the same conclusion.  Next I tracked down the likely
.jar file and confirmed that it's on the classpath and present.  So
then I wrote a jartester class to see what it looked like:
-------------------------------------------------
import java.lang.reflect.Method;

public class JarTester {

public static void main(String [] args)
throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException
{
Class obj =  Class.forName("org.apache.axis2.client.Stub");
Method [] methods = obj.getDeclaredMethods();
for (int i=0;i<methods.length;i++)
        System.out.println(methods[i]);
System.out.println(obj.getSuperclass() + ": superclass");
System.out.println(obj.getPackage() + ": package");
}
}
--------------------------------------------------

I get this :
------------------------------------------------
protected void org.apache.axis2.client.Stub.finalize() throws
java.lang.Throwable
protected static org.apache.axiom.soap.SOAPFactory
org.apache.axis2.client.Stub.getFactory(java.lang.String)
public void org.apache.axis2.client.Stub.cleanup() throws
org.apache.axis2.AxisFault
public org.apache.axis2.client.ServiceClient
org.apache.axis2.client.Stub._getServiceClient()
public void 
org.apache.axis2.client.Stub._setServiceClient(org.apache.axis2.client.ServiceClient)
protected static org.apache.axiom.soap.SOAPEnvelope
org.apache.axis2.client.Stub.createEnvelope(org.apache.axis2.client.Options)
throws org.apache.axiom.soap.SOAPProcessingException
protected void 
org.apache.axis2.client.Stub.setServiceClientEPR(java.lang.String)
protected void 
org.apache.axis2.client.Stub.addHttpHeader(org.apache.axis2.context.MessageContext,java.lang.String,java.lang.String)
protected void 
org.apache.axis2.client.Stub.addPropertyToOperationClient(org.apache.axis2.client.OperationClient,java.lang.String,java.lang.Object)
protected void 
org.apache.axis2.client.Stub.addPropertyToOperationClient(org.apache.axis2.client.OperationClient,java.lang.String,boolean)
protected void 
org.apache.axis2.client.Stub.addPropertyToOperationClient(org.apache.axis2.client.OperationClient,java.lang.String,int)
protected void 
org.apache.axis2.client.Stub.setMustUnderstand(org.apache.axiom.om.OMElement,org.apache.axiom.om.OMNamespace)
protected void 
org.apache.axis2.client.Stub.addHeader(org.apache.axiom.om.OMElement,org.apache.axiom.soap.SOAPEnvelope,boolean)
protected void 
org.apache.axis2.client.Stub.addHeader(org.apache.axiom.om.OMElement,org.apache.axiom.soap.SOAPEnvelope)
class java.lang.Object: superclass
package org.apache.axis2.client: package

-----------------------------------------------

Notice that it confirms the package I'm looking at is
org.apache.axis2.client, however there is NO method in there by the
desired name, and that the parent is Object, so it's not from up the
chain.  It's like the Vista port just missed that method...

I'm hoping someone can see something dumb I've done and point me in
the right direction, or has encountered this and can tell me how to
fix it.

- Shasta

Reply via email to