[Axis] webservice integreren in webapplicatie

Pagina: 1
Acties:

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
Ik ben me momenteel aan het verdiepen in webservices, meer bepaald Axis. Ik heb het concept dan ook redelijk goed door, maar ik zit toch nog met enkele vragen. Vooral op het vlak van implementatie.

Er zijn verschillende manieren om een webservice via Axis te integreren. De eerste (en simpelste) manier is om een simpele java class te maken; deze te hernoemen naar HelloService.jws en te deployen in de Axis applicatie.

De manier die ik voorlopig gebruik, maakt gebruik van een simpele Service:
Java:
1
2
3
4
5
6
public class HelloServer {
    public String sayHello(String name){
        System.out.println("sayHello(String name)");
        return "Hello "+name+", How are you doing?";
    }
}


Ik beschrijf deze Service in een deploy.wsdd file
Java:
1
2
3
4
5
6
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <service name="HelloService" provider="java:RPC">
        <parameter name="className" value="com.domein.webservice.HelloServer"/>
        <parameter name="allowedMethods" value="*"/>
    </service>
</deployment>

Dit werkt allemaal goed en wel, maar ik zou mijn Web service graag willen ontwikkelen met WSDL ondersteuning (zodat er requestor-side stubs, provider-side skeleton impl. en deployment descriptors gegenereerd kunnen worden).

Maar hier zit ik een beetje mee in de knoop. Op welke wijze kan ik dit nu het beste verwezenlijken. Ik ga er vanuit dat ik eerst de code van mijn webservice zal schrijven en pas erna deze stubs e.d. zal genereren.

Ik dacht daarom ook volgende manier van werken te volgen
• java interface voor webservice schrijven en compileren
• java class implementatie voor webservice schrijven en compileren (met debug optie)
• Java2WDSL (creeert de WSDL files)
• WSDL2Java (creeert files voor de webservice (stubs, proxy, ..)
• de ClassNaamSoapBindingImpl.java aanpassen (hier heb ik problemen mee; ik wil dat er automatisch gebruik wordt gemaakt van mijn al geschreven service)
• Webservice files compileren
• Deployen van de webservice

Op welke wijze kan ik dit dan nu het beste realiseren??

Ik wil dus gewoon mijn webservice-side code schrijven en vanaf daar (via ANT) overgaan tot het compileren, genereren, deployen van de WS, zonder nog enige tussenkomst van de deployer/developer :?

Verwijderd

Ik heb niet echt veel ervaring met webservices, maar kan XDoclet en de wsdltask je soms helpen?

of dit misschien:

Java development with ant example chapter 15
(ik denk dat die laatste wel een mooie hulp kan zijn, heb'm niet helemaal gelezen)

iig zou WSDL2Java je WSDD file moeten (kunnen) creeren als ik me niet vergis, en dat is je deployment descriptor... voor webservices zou ik geen .JWS javabestanden gebruiken, daar kan je geen security op defineren enzo..

en dit nog:
http://www.javaworld.com/...-2003/jw-0411-axis_p.html

[ Voor 36% gewijzigd door Verwijderd op 02-02-2005 20:15 ]


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
Beide artikels heb ik reeds gelezen, maar in geen van beide wordt er echt het nut van de verschillende manieren van aanpakken uitgelegd.

Gelijk ik hierboven beschreef, werkt de webservice wel, dat is het probleem niet echt. Maar ik weet niet goed waarom je nu juist die WSDL op voorhand moet genereren? Het enige dat ik me kan bedenken is dat Axis deze WSDL anders bij iedere call opnieuw zou genereren (weliswaar gecached)?! Maar langs de andere kant is heb je dan wel een grotere flexibiliteit in je webservice (bijvoorbeeld als je een method toevoegd).

Zelfs met het genereren van de stubs stel ik me vragen. Je kan de webservice ook via een service en call aanroepen, waarom heb je hier precies een stub voor nodig?

Het zijn misschien allemaal maar simpele vragen, maar als je met webservices (en Axis) begint, lijkt dit allemaal niet zo evident; er is ook nergens echt goede (onderbouwende) documentatie beschikbaar, en dat is wel jammer vind ik.