Webservices 1
Korzystanie z Usług Sieciowych przy pomocy protokołu SOAP
Usługa
Przykładową usługą w tym ćwiczeniu będzie serwis oferowany przez Koścół
Św. Gregoriosa http://www.stgregorioschurchdc.org/.
Usługa ta jest opisana na stronie http://www.xmethods.com/ve2/ViewListing.po?serviceid=66685
. Podaje ona date Świąt Wielkanocnych w zadanym roku.
Wykonac te usluge mozna wykorzystujac pakiet
SoupUI
(mozna zobaczyc tam komunikaty SOAP).
Ćwiczenie1: Klient w Javie
Do korzystania z usług sieciowych (Web Services) w Javie wykorzystamy bibliotekę
AXIS rozwijaną przez projekt Apache. Jest ona zainstalowana w katalogu
/afs/wszib.edu.pl/usr/t/s/tszepie/pub/prir/axis-1_4/
. Aby z niej móc
korzystać,
należy dopisać do CLASSPATH wszystkie pliki JAR znajdujące się w dystrybucji
AXIS. Robimy to skryptem axissetup.sh.
. axissetup.sh
Do tworzenia klienta skorzystamy z opisu usługi, dostępnej w pliku WSDL
dostępnym pod adresem: http://www.stgregorioschurchdc.org/wsdl/Calendar.wsdl
Wszystkie potrzebne pliki wygenerujemy narzędziem WSDL2Java dostępnym w
AXIS:
java org.apache.axis.wsdl.WSDL2Java http://www.stgregorioschurchdc.org/wsdl/Calendar.wsdl
Wygeneruje nam to pliki:
- org/stgregorioschurchdc/www/Calendar/Calendar.java
- org/stgregorioschurchdc/www/Calendar/CalendarLocator.java
- org/stgregorioschurchdc/www/Calendar/EasterDateSoapBindingStub.java
- org/stgregorioschurchdc/www/Calendar/EasterDateSoapPort.java
Klienta musimy napisać sami.
Na początku deklarujemy korzystanie z utworzonych plików:
import org.stgregorioschurchdc.www.Calendar.*;
Następnie w funkcji main()
try {
//tworzymy referencje do usługi
Calendar calendar = new CalendarLocator();
//pobieramy port SOAPowy
EasterDateSoapPort port = calendar.getEasterDateSoapPort();
//wywolujemy zdalnie funkcję usługi
System.out.println(port.easter_date(Short.parseShort(args[0])));
} catch (Exception e) {
System.err.println("App exception: " +
e.getMessage());
e.printStackTrace();
}
Gotowy Client.java
Kompilujemy utworzony plik
javac Client.java
Uruchamiamy klienta pytając o Wielkanoc w roku 2008:
java Client 2008
Dostajemy odpowiedź:
2008/03/23
Ćwiczenie 2: Klient w Perlu
Perl jest językiem skryptowym, używanym do przetwarzania plików tekstowych,
również w skryptach CGI. Istnieje wygodny moduł o nazwie SOAP::Lite, służacy
do obsługi Usług Sieciowych (Web Services). Progam client.pl w perlu korzystający
z tej samej usługi podającej datę wielkanocy będzie miał postać:
use SOAP::Lite;
print SOAP::Lite
->
service('http://www.stgregorioschurchdc.org/wsdl/Calendar.wsdl')
-> easter_date(@ARGV[0]);
print "\n"
Program ten uruchamiamy perlem (w jednej lini!), podając ścieżkę do biblioteki SOAP::Lite:
perl -I /afs/wszib.edu.pl/usr/t/s/tszepie/pub/prir/SOAP-Lite-0.69/lib/
client.pl 2008
Ćwiczenie 3: dodatkowe
Proszę napisać klienta do innej usługi sieciowej, której opis znaleźć można
np. na stronie http://www.xmethods.com
Maciej Malawski,
Marcin Radecki,
Tomasz Szepieniec