Axis1 1.4 - How do I generate BindingStub and Proxy for endpoint overriding?

Daniele Segato <[email protected]>
Newsgroups gmane.text.xml.axis.user
Message-ID <[email protected]>
Hi,

I've been given an old, undocumented, code for which I have to upgrade 
the WSDL and then develop using new services. (Axis1, NOT Axis2)

Already generated methods have many classes (v1 directory):

OldServiceFault.java
OldService_PortType.java
OldServiceProxy.java
OldService_Service.java
OldService_ServiceLocator.java
OldServiceSOAPSoapBindingStub.java
OldServiceSOAPStub.java


on the new generated one:
NewServiceFault.java
NewService_PortType.java
NewService_Service.java
NewService_ServiceLocator.java
NewServiceSOAPStub.java


SoapBindingStub and Proxy classes are missing and I need them.

OldServiceSOAPSoapBindingStub.java and OldServiceSOAPStub.java are very 
similar, but the latter has addBinding0, addBinding1 methods with more 
QNames definitions, something like:

******
             qName = new 
javax.xml.namespace.QName("http://my.wsdl.com/namespace", "SomeType");
             cachedSerQNames.add(qName);
             cls = java.math.BigInteger.class;
             cachedSerClasses.add(cls);

cachedSerFactories.add(org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory(org.apache.axis.encoding.ser.SimpleSerializerFactory.class, 
cls, qName));

cachedDeserFactories.add(org.apache.axis.encoding.ser.BaseDeserializerFactory.createFactory(org.apache.axis.encoding.ser.SimpleDeserializerFactory.class, 
cls, qName));
******

on the other end the Proxy class do not resemble other classes, it 
implement the _PortType interface and apparently is used as a decorator 
to the BindingStub class that limit itself only to override the endpoint:

****
   public OldServiceProxy(String endpoint) {
     _endpoint = endpoint;
     _initOldServiceProxy();
   }

   private void _initOldServiceProxy() {
     try {
       oldService_PortType = (new 
my.package.OldService_ServiceLocator()).getOldServiceSOAP();
       if (oldService_PortType != null) {
         if (_endpoint != null)

((javax.xml.rpc.Stub)oldService_PortType)._setProperty("javax.xml.rpc.service.endpoint.address", 
_endpoint);
         else
           _endpoint = 
(String)((javax.xml.rpc.Stub)oldService_PortType)._getProperty("javax.xml.rpc.service.endpoint.address");
       }

     }
     catch (javax.xml.rpc.ServiceException serviceException) {}
   }
***

for every other methods it delegate to the service returned by the locator.

I've no experience in axis and googled a lot (even tried to study the 
axis 1.4 source code) before coming here to ask.


My question is: how do I generate those two classes?

thank you very much in advance
Regards
Daniele Segato
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.