You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by MArtin Schumacher <ma...@keineantwort.de> on 2004/07/28 15:00:39 UTC

Own WebService Implementation classes

Hi,

I am trying Axis since a few days and I am getting quite comfortable 
with it. Just the bad ant-support or better the bad documentation for 
the ant-support is quite hard to handle...

Until now I figured out a lot about axis and ant. But now I am at a 
wired point:
I try to generate the WSDD for the Axis-Servlet with the 
WSDL2Java-Ant-Task. Everything works fine if I want to start a project 
from the scratch. But not if I have my own already existing 
Service-Implementation. i.e.

public class Service implements java.java.rmi.Remote {
   public String getVersion() throws throws java.rmi.RemoteException {
     return "Version 1.0";
   }
}

I want to use this as the WebService Implementation instead of the 
generated "AdminSoapBindingImpl"-class. And I also don't need the 
Service-Interface...

Is there any way to control the output of the WSDL2Java-Ant-Task except 
changing the Axis-Source-Files?

MArtin

Re: Own WebService Implementation classes

Posted by MArtin Schumacher <ma...@keineantwort.de>.
Hi Steve,

hmm... this sounds like a lot of copying for me... :( And I want to 
generate the Webservice-Implementation Class with my MDA-Tool. I just 
don't want to hack anything about Webservices at all in my concrete 
project. This Implementation-Class is also a Forwarder 
(Delegation-Pattern). But the name of the WebService Class 
"SoapBindingImpl" doesn't fit in my architecture at all. Every class 
with this task is called Proxy. I want to name it here "WebServiceProxy".

So, do I have to generate my Proxy class and the "SoapBindingImpl" 
twice? Once by the MDA-Task, then by the WSDL2Java-Task, then overwrite 
the second one with the first one? And then I have two forwards? I think 
thats not a really good design...

.---------------.      .-----------------.      .--------------------.
| myServiceImpl |<-----| WebServiceProxy |<-----|  SoapBindingImpl   |
| (handcoded)   |      | (MDA-generated) |      | (1.MDA-generated)  |
|               |      |                 |      | (2.Axis-generated) |
'---------------'      '-----------------'      '--------------------'
                                                            ^
                                                            |
                                                 .--------------------.
                                                 |     WebService     |
                                                 '--------------------'

This hard Naming-Convention is quite strange, isn't it? Will there be 
sometime a possibility to change the implementation-class name?

MArtin

smcardle@spansurf.com wrote:

> Hi Martin,
> 
> You can just use the the generated Impl class as a forwarder to your class. If 
> you instanciate your own class and then call your methods from the generated 
> Impl class.
> 
> This works fine for me. As WSDL2Java will not recreate or overwrite the Imple 
> class once it exists. If I have new methods to add to a service I generally 
> rename the Imple class then generate the Server side classes from the WSDL then 
> copy out the new methods generated to my renamed Imple class and then copy it 
> back.
> 
> Regards
> 
> Steve
> 
> Quoting MArtin Schumacher <ma...@keineantwort.de>:
> 
> 
>>Hi,
>>
>>I am trying Axis since a few days and I am getting quite comfortable 
>>with it. Just the bad ant-support or better the bad documentation for 
>>the ant-support is quite hard to handle...
>>
>>Until now I figured out a lot about axis and ant. But now I am at a 
>>wired point:
>>I try to generate the WSDD for the Axis-Servlet with the 
>>WSDL2Java-Ant-Task. Everything works fine if I want to start a project 
>>from the scratch. But not if I have my own already existing 
>>Service-Implementation. i.e.
>>
>>public class Service implements java.java.rmi.Remote {
>>   public String getVersion() throws throws java.rmi.RemoteException {
>>     return "Version 1.0";
>>   }
>>}
>>
>>I want to use this as the WebService Implementation instead of the 
>>generated "AdminSoapBindingImpl"-class. And I also don't need the 
>>Service-Interface...
>>
>>Is there any way to control the output of the WSDL2Java-Ant-Task except 
>>changing the Axis-Source-Files?
>>
>>MArtin
>>
> 
> 
> 
> 
> 
> 
> 


Re: Own WebService Implementation classes

Posted by sm...@spansurf.com.
Hi Martin,

You can just use the the generated Impl class as a forwarder to your class. If 
you instanciate your own class and then call your methods from the generated 
Impl class.

This works fine for me. As WSDL2Java will not recreate or overwrite the Imple 
class once it exists. If I have new methods to add to a service I generally 
rename the Imple class then generate the Server side classes from the WSDL then 
copy out the new methods generated to my renamed Imple class and then copy it 
back.

Regards

Steve

Quoting MArtin Schumacher <ma...@keineantwort.de>:

> Hi,
> 
> I am trying Axis since a few days and I am getting quite comfortable 
> with it. Just the bad ant-support or better the bad documentation for 
> the ant-support is quite hard to handle...
> 
> Until now I figured out a lot about axis and ant. But now I am at a 
> wired point:
> I try to generate the WSDD for the Axis-Servlet with the 
> WSDL2Java-Ant-Task. Everything works fine if I want to start a project 
> from the scratch. But not if I have my own already existing 
> Service-Implementation. i.e.
> 
> public class Service implements java.java.rmi.Remote {
>    public String getVersion() throws throws java.rmi.RemoteException {
>      return "Version 1.0";
>    }
> }
> 
> I want to use this as the WebService Implementation instead of the 
> generated "AdminSoapBindingImpl"-class. And I also don't need the 
> Service-Interface...
> 
> Is there any way to control the output of the WSDL2Java-Ant-Task except 
> changing the Axis-Source-Files?
> 
> MArtin
>