Ultimamente mi sono dovuto occupare ripetutamente di Web Service.
Ho sviluppato client e server Web Service in .Net (C# e VB.NET), Java, ASP e Visual Basic 6.
Mi manca fare un client Web Service in Assembler 68000 e le ho veramente viste tutte!
Il lavoro più complesso ha riguardato la realizzazione di un Web Service in .Net che doveva essere consumato da SAP. "Il bello" di SAP è che decide lui come invocare il tuo web service. Tu puoi anche fare un WSDL, ma lui non se lo fila e ti passa un messaggio XML-SOAP costruito come vuole lui.
Alla fine è il server che deve adattarsi al client! Alla faccia degli standard.
Oggi ho completato un client Java che deve invocare un Web Service in .Net, e devo dire che superate le solite complicazioni di Java per compilare correttamente quello che serve, poi è veramente una passeggiata.
Ecco un brevissimo tutorial che ho preparato:
-------------------------------------------------------
Per invocare i metodi di un Web Service è necessario disporre del pacchetto Apache Axis (1.4).
Per un corretto funzionamento i jar che si trovano nella directory axis/lib devono essere inclusi nel classpath.
Una volta installato Axis, sarà necessario utilizzare la sua classe WSDL2Java per generare le classi Java che consentiranno ad un applicativo di invocare i metodi del web service come se si trattasse di una classe locale.
Al WSDL2Java deve essere passato l'indirizzo del wsdl del web service che si desidera utilizzare.
Es:
java org.apache.axis.wsdl.WSDL2Java http://127.0.0.1:8080/test/TestWs?wsdl
WSDL2Java genererà un apposito package che deve essere incluso nel progetto.
Il progetto deve far riferimento anche ai jar di Axis che si trovano nella cartelle axis/bin
Ad esempio io ho utilizzato il WSDL di un webservice denominato TestWS, il cui namespace è "http://dhanago.test.com/".
Il WSDL2Java mi ha creato un package com.test.dhanago che tramite Axis invocherà i metodi del web service in modo del tutto trasparente
Per stabilire la connessione bastano due semplici istruzioni:
com.test.dhanago.TestWsServiceLocator loc = new com.test.dhanago.TestWsServiceLocator();
com.test.dhanago.TestWs port = loc.getTestWsPort();
Una volta connesso, è possibile invocare singolarmente i diversi metodi che vengono esposti dall'oggetto port.
res = port.HelloWorld("Mario");
13 marzo 2008
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento