On 08/29/2012 08:16 PM, Daniele Segato wrote:
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)


I solved this on my own, finally..  (with an external hint actually)

Here's how I solved it if someone need it.

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

Apparently the SoapBindingStub is automatically created when needed (when the wsdl exceed a certain number of definitions I think)

In my case it wasn't needed.


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.

And this class is NOT generated by the wsdl2java.

It's generated by Eclipse doing:

File -> New -> Other (CTRL+N)
look for Web Services -> Web Service Client

select a WSDL, a runtime environment (tomcat 6 for example) and the project that will contain the generated classes.

This does exactly the same of the wsdl2java + the proxy class.
It apparently automatically choose to use axis1 or 2 depending on the wsdl itself.


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?

I initially tough of seeing if Eclipse had something like that, but my eclipse installation didn't.

That option is bundled in Eclipse if you download the "Eclipse IDE for Java EE Developers" version. I had indigo.

Be aware that I had some Eclipse plugin that, for some reason, removed the Web Service Client option (and Axis preferences) - this was the reason it took me so much time... I do not know which was the plugin causing the issue, if that happen to you just use a clean Eclipse EE to generate it.

thank you very much in advance
Regards
Daniele Segato

Regards,
Daniele

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org
For additional commands, e-mail: java-user-h...@axis.apache.org

Reply via email to