AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding

Transkrypt

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding
AXIS2 - tworzenie usługi sieciowej i klienta
Axis Data Binding
dr inż. Juliusz Mikoda
mgr inż. Anna Wawszczak
poniedziałek, 4 kwietnia 2011
Ustawienie zmiennych środowiskowych
• Przed rozpoczęciem pracy z pakietem AXIS należy ustalić następujące
zmienne środowiskowe:
• export AXIS2_HOME=katalog domowy AXIS2
• export CLASSPATH=$AXIS2_HOME/lib/**
poniedziałek, 4 kwietnia 2011
Opis klasy z dokumenty WSDL
poniedziałek, 4 kwietnia 2011
Kalkulator kredytowy
• Usługa sieciowa pozwala na wyznaczenie wysokości rat dla kredytu.
• Kredyt opisany jest przez kwotę, liczbę miesięcy i oprocentowanie (zakładamy, że raty są spłacane co miesiąc).
• Usługa zwraca tablicę Rat składających się z kwoty kapitału i kwoty odsetek.
• Klasy składające się na usługę to:
‣ kredyty.service.KalkulatorKredytowy
public Rata [] getRaty(Kredyt k)
‣ kredyty.service.Kredyt
float kwota;
int okres;
float oprocentowanie;
‣ kredyty.service.Rata
kapital;
odsetki;
• Aby pola składowe klasy były widoczne dla AXIS2 należy zdefiniować metody get i set dla tych pól składowych.
poniedziałek, 4 kwietnia 2011
Kalkulator kredytowy
struktura plików
• Wszystkie pliki źródłowe umieszczone w katalogu src i podkatalogach odpowiadających pakietowi
kredyty.service, a więc:
‣ src/kredyty/service/Rata.java
‣ src/kredyty/service/Kredyt.java
‣ src/kredyty/service/KalkulatorKredytowy.java
• W katalogu src znajduje się również katalog META-INF, a w nim plik services.xml o następującej
zawartości:
‣ src/META-INF/services.xml:
<service name="KalkulatorKredytowy" scope="application">
<description>
Kalkulator kredytowy
</description>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass">kredyty.service.KalkulatorKredytowy</parameter>
</service>
poniedziałek, 4 kwietnia 2011
Kalkulator kredytowy
kompilacja i uruchomienie usługi
• Kompilacja klas:
‣ javac -d build/classes/ src/kredyty/service/*.java
‣ -d dest - katalog, w którym zostaną umieszczone pliki *.class;
‣ w katalog build/classes/ powinien zawierać pliki Rata.class, Kredyt.class i
KalkulatorKredytowy.class;
• Do katalogu build/classes/ przekopiować katalog META-INF z katalogu src.
• Utworzenie archiwum .aar z zawartości katalogu build/classes (pliki .class oraz katalog METAINF):
‣ jar cvf build/KalkulatorKredytowy.aar -C build/classes .
• Utworzony w ten sposób plik KalkulatorKredytowy.aar powinien zostać umieszczony w
katalogu $AXIS2_HOME/repository/services
poniedziałek, 4 kwietnia 2011
Klient kalkulatora kredytowego
generowanie klas klienta
• Aby utworzyć klienta usługi sieciowej należy wygenerować klasy
odpowiadające elementom występującym w usłudze sieciowej.
• Klasy te są generowane za pomocą aplikacji wsdl2java na podstawie pliku
WSDL opisującego usługę sieciową.
• $AXIS2_HOME/bin/wsdl2java.sh -uri KalkulatorKredytowy.wsdl -d adb -s -p
kredyty.client
• Uruchomienie skryptu spowoduje utworzenie pliku
KalkulatorKredytowyStub.java w katalogu src/kredyty/klient.
• Utworzona zostanie klasa KalkulatorKredytowyStub, wewnątrz której znajdują
się następujące klasy wewnętrzne: Kredyt, Rata, GetRatyResponse, GetRaty.
poniedziałek, 4 kwietnia 2011
Klient kalkulatora kredytowego
klasy klienta
• KalkulatorKredytowyStub to klasa reprezentująca usługę sieciową.
• KalkulatorKredytowyStub.Kredyt i KalkulatorKredytowyStub.Rata to klasy
odpowiadające klasom kredyty.service.Kredyt i kredyty.service.Rata. Klasy te
udostępniają metody get i set pozwalające na pobranie i ustawienie pól
składowych klasy.
• GetRaty to klasa odwzorowująca metodę getRaty. Obiekt ten jest
wykorzystywany do zdefiniowania parametrów przekazywanych do metody
getRaty.
• GetRatyResponse klasa, której obiekt jest zwracany przez metodę getRaty.
poniedziałek, 4 kwietnia 2011
Klient kalkulatora kredytowego
implementacja klienta
try{
String URL = "http://localhost:4321/axis2/services/KalkulatorKredytowy";
KalkulatorKredytowyStub stub = new KalkulatorKredytowyStub(URL);
} catch (Exception ex) {
ex.printStackTrace();
}
poniedziałek, 4 kwietnia 2011
Klient kalkulatora kredytowego
implementacja klienta
try{
String URL = "http://localhost:4321/axis2/services/KalkulatorKredytowy";
KalkulatorKredytowyStub stub = new KalkulatorKredytowyStub(URL);
KalkulatorKredytowyStub.GetRaty gR = new KalkulatorKredytowyStub.GetRaty();
} catch (Exception ex) {
ex.printStackTrace();
}
poniedziałek, 4 kwietnia 2011
Klient kalkulatora kredytowego
implementacja klienta
try{
String URL = "http://localhost:4321/axis2/services/KalkulatorKredytowy";
KalkulatorKredytowyStub stub = new KalkulatorKredytowyStub(URL);
KalkulatorKredytowyStub.GetRaty gR = new KalkulatorKredytowyStub.GetRaty();
KalkulatorKredytowyStub.Kredyt k = new KalkulatorKredytowyStub.Kredyt();
k.setKwota(120.0f); k.setOkres(12); k.setOprocentowanie(0.1f);
} catch (Exception ex) {
ex.printStackTrace();
}
poniedziałek, 4 kwietnia 2011
Klient kalkulatora kredytowego
implementacja klienta
try{
String URL = "http://localhost:4321/axis2/services/KalkulatorKredytowy";
KalkulatorKredytowyStub stub = new KalkulatorKredytowyStub(URL);
KalkulatorKredytowyStub.GetRaty gR = new KalkulatorKredytowyStub.GetRaty();
KalkulatorKredytowyStub.Kredyt k = new KalkulatorKredytowyStub.Kredyt();
k.setKwota(120.0f); k.setOkres(12); k.setOprocentowanie(0.1f);
gR.setArgs0(k);
} catch (Exception ex) {
ex.printStackTrace();
}
poniedziałek, 4 kwietnia 2011
Klient kalkulatora kredytowego
implementacja klienta
try{
String URL = "http://localhost:4321/axis2/services/KalkulatorKredytowy";
KalkulatorKredytowyStub stub = new KalkulatorKredytowyStub(URL);
KalkulatorKredytowyStub.GetRaty gR = new KalkulatorKredytowyStub.GetRaty();
KalkulatorKredytowyStub.Kredyt k = new KalkulatorKredytowyStub.Kredyt();
k.setKwota(120.0f); k.setOkres(12); k.setOprocentowanie(0.1f);
gR.setArgs0(k);
KalkulatorKredytowyStub.GetRatyResponse res2 = stub.getRaty(gR);
} catch (Exception ex) {
ex.printStackTrace();
}
poniedziałek, 4 kwietnia 2011
Klient kalkulatora kredytowego
implementacja klienta
try{
String URL = "http://localhost:4321/axis2/services/KalkulatorKredytowy";
KalkulatorKredytowyStub stub = new KalkulatorKredytowyStub(URL);
KalkulatorKredytowyStub.GetRaty gR = new KalkulatorKredytowyStub.GetRaty();
KalkulatorKredytowyStub.Kredyt k = new KalkulatorKredytowyStub.Kredyt();
k.setKwota(120.0f); k.setOkres(12); k.setOprocentowanie(0.1f);
gR.setArgs0(k);
KalkulatorKredytowyStub.GetRatyResponse res2 = stub.getRaty(gR);
KalkulatorKredytowyStub.Rata [] raty = res2.get_return();
} catch (Exception ex) {
ex.printStackTrace();
}
poniedziałek, 4 kwietnia 2011
Klient kalkulatora kredytowego
implementacja klienta
try{
String URL = "http://localhost:4321/axis2/services/KalkulatorKredytowy";
KalkulatorKredytowyStub stub = new KalkulatorKredytowyStub(URL);
KalkulatorKredytowyStub.GetRaty gR = new KalkulatorKredytowyStub.GetRaty();
KalkulatorKredytowyStub.Kredyt k = new KalkulatorKredytowyStub.Kredyt();
k.setKwota(120.0f); k.setOkres(12); k.setOprocentowanie(0.1f);
gR.setArgs0(k);
KalkulatorKredytowyStub.GetRatyResponse res2 = stub.getRaty(gR);
KalkulatorKredytowyStub.Rata [] raty = res2.get_return();
for (int i = 0; i < raty.length; i++)
System.out.println("Rata " + (i+1)
+ "\tkapitał: " + raty[i].getKapital()
+ "\todsetki: " + raty[i].getOdsetki()
+ "\trazem: " + (raty[i].getKapital() + raty[i].getOdsetki()) );
} catch (Exception ex) {
ex.printStackTrace();
}
poniedziałek, 4 kwietnia 2011
Klient kalkulatora kredytowego
kompilacja i uruchomienie klienta kalkulatora kredytowego
• Kompilacja:
‣ javac -d build/classes/ src/kredyty/client/**
• Uruchomienie (z katalogu build/classes)
‣ java kredyty.client.KlientKalkulatoraKredytowego
poniedziałek, 4 kwietnia 2011

Podobne dokumenty