Operating System - OpenVMS
Showing results for 
Search instead for 
Did you mean: 

Axis2 port missing method?

Shasta Willson
Occasional Contributor

Axis2 port missing method?

I have a class which extends org.apache.axis2.client.Stub

This class uses the addAnonymousOperations() method, which works fine on my Vista box and is also present in this Axis2 API: http://www.docjar.com/docs/api/org/apache/axis2/client/Stub.html#addAnonymousOperations

But on OpenVMS running the jar with that class in it gives me this error:

java.lang.NoSuchMethodError: org.redacted.myStub.addAnonymousOperations()V

After confirming that the expected axis2 .jar was present and on the classpath, I wrote a jartester:

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 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
protected static org.apache.axiom.soap.SOAPFactory
public void org.apache.axis2.client.Stub.cleanup() throws
public org.apache.axis2.client.ServiceClient
public void org.apache.axis2.client.Stub._setServiceClient(org.apache.axis2.client.ServiceClient)
protected static org.apache.axiom.soap.SOAPEnvelope
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...

Can someone point me in a useful direction? Perhaps I'm tired and have missed something that's glaringly obvious to fresh eyes?

- Shasta
Honored Contributor

Re: Axis2 port missing method?

>>> Axis2 port missing method?

Unlikely. It seems to be a native java class, so there is nothing "ported" to VMS.

AXIS2 for VMS is based on "Apache Axis2 1.3 build (10-08-2007)". addAnonymousOperations() looks like a 1.4 method.
Shasta Willson
Occasional Contributor

Re: Axis2 port missing method?

What are you talking about? addAnonymousOperations() is part of the org.apache.axis2.client.Stub class.

At least in some builds -- this morning I found others discussing this as a version specific bug in axis2:


So, looks like it may have more to do with the Axis version than with OpenVMS. I'll be experimenting with commenting out that line and/or judicious replacement of .jars
Shasta Willson
Occasional Contributor

Re: Axis2 port missing method?

Ah...I just figured out your answer -- that since the files are pure-Java there shouldn't be a porting problem.

Agreed, except that Axis2 for VMS is described as a port ( http://www.openvms.compaq.com/openvms/products/ips/axis2/ ) which suggests it wasn't just plunked over, but edited, pure Java or not.