środa, 28 kwietnia 2010

Przystosowywanie aplikacji klienckiej do współpracy z usługą sieciową, której lokalizacja uległa zmianie

Modyfikacja wnętrza archiwum jar klienta usługi sieciowej może być szybkim sposobem na przystosowanie aplikacji do współpracy z usługą, której lokalizacja uległa zmianie. Klient stworzony w oparciu
o dokument WSDL usługi działającej w obrębie serwera aplikacji GlassFish, posłuży nam przy budowie swojego odpowiednika współpracującego z identyczną usługą, uruchomioną pod WebSphere Application Server 7.

1. Wcześniejsze wpisy bezpośrednio korespondujące z bieżącym

Tworzenie usługi sieciowej z wykorzystaniem JAX-WS i NetBeans IDE 6.8
Instalacja oraz uruchomienie usługi sieciowej pod WebSphere Application Server 7

2. Tworzenie aplikacji klienckiej

Rozpakowujemy archiwum MyWsClient.jar do folderu MyWsClient .

Pliki wewnątrz MyWsClient/myfirstws/ nie będą nam dłużej potrzebne - usuwamy wszystkie.

W celu wygenerowania nowej zawartości folderu myfirstws wykorzystamy narzędzie wsimport. Jeżeli dokument WSDL usługi jest aktualnie dostępny pod adresem http://localhost:9080/mywebapp/MyFirstWsService/MyFirstWsService.wsdl możemy przejść dalej,
w przeciwnym wypadku powinniśmy najpierw uruchomić usługę.

Domyślna lokalizacja wsimport.sh to /opt/IBM/WebSphere/AppServer/bin/ . Znajdując się wewnątrz MyWsClient wykonujemy polecenie /opt/IBM/WebSphere/AppServer/bin/wsimport.sh -verbose http://localhost:9080/mywebapp/MyFirstWsService/MyFirstWsService.wsdl .
Pliki wygenerowane w oparciu o dokument WSDL umożliwią nam komunikację pomiędzy klientem a dostawcą usługi.

Kolejnym krokiem jest modyfikacja zawartości folderu MyWsClient/meta-inf/. Plik jax-ws-catalog.xml
edytujemy do postaci:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system">

<system systemId="http://localhost:9080/mywebapp/MyFirstWsService/MyFirstWsService?WSDL" uri="wsdl/localhost_9080/mywebapp/MyFirstWsService/MyFirstWsService.wsdl"/>

<system systemId="http://localhost:9080/mywebapp/MyFirstWsService/MyFirstWsService?xsd=1" uri="wsdl/localhost_9080/mywebapp/MyFirstWsService/MyFirstWsService.xsd_1.xsd"/>

</catalog>
Następnie nadpisujemy plik MyFirstWsService.wsdl aktualną wersją dokumentu znajdującą się pod adresem http://localhost:9080/mywebapp/MyFirstWsService/MyFirstWsService.wsdl

Dokument WSDL wraz z pozostawionym bez zmian plikiem MyFirstWsService.xsd_1.xsd powinien znaleźć się w folderze MyWsClient/meta-inf/wsdl/localhost_9080/mywebapp/MyFirstWsService/. Po przeniesieniu dokumentów należy usunąć podfoldery localhost_30074/MyWebApplication/ .

Wymagana jest również zmiana nazwy folderu meta-inf oraz pliku manifest.mf na odpowiednio META-INF oraz MANIFEST.MF .

Pozostało nam jedynie podmienić w archiwum jar foldery meta-inf oraz myfirstws na ich, przygotowane przez nas odpowiedniki.

Stworzoną aplikację uruchamiamy poleceniem
java -jar MyWsClient.jar 15 3
. Otrzymany wynik świadczy
o przeprowadzeniu poprawnych modyfikacji.

Brak komentarzy: