Wydawać by się mogło, że tworzenie Web Service’ów jest rzeczą trudną. Trzeba znać strukturę pliku WSDL, specyfikacje protokołu SOAP itp. Nic bardziej mylnego!!! Co prawda mój pierwszy Web Service i klient do niego powstawał troszkę ponad godzinę, ale miałem do dyspozycji tylko tutorial w j. ang. do starej wersji Eclipsa. Za to mój drugi Web Service razem z klientem powstawał już w przeciągu kilku minut. Chcesz się przekonać, że to możliwe? Zapraszam do lektury poniższego artykułu.
Przygotowanie gruntu
To co nam będzie potrzebne to oczywiście Eclipse z wbudowaną lub doinstalowaną wtyczką WTP 3.1.1 (Web Tools Platform) oraz kontener serwletów Apache Tomcat 5.5 lub nowszy. Na chwile obecną dostępna jest dystrybucja Eclipse IDE for Java EE Developers, która ma wbudowaną wtyczkę WTP 3.1.1. Dystrybucja do ściągnięcia oczywiście ze strony www.eclipse.org/downloads.
Ok, zakładam, że masz już zainstalowanego Eclipsa i Tomcat’a. Ostatnią rzeczą przed właściwym tworzeniem Web Service’u będzie konfiguracja Tomcata pod Eclipsem. W tym celu przejdź do Windows -> Preferences -> Installed Runtimes i dodaj nowy serwer uruchomieniowy: Apache Tomcat w wersji zgodnej z zainstalowaną.
Teraz możemy już tworzyć nasz przykładowy Web Service, którego zadaniem będzie tłumaczenie tekstu pisanego na alfabet Morsa i vice versa.
Tworzenie Web Service’u
Stwórzmy nowy projekt: File -> New -> Project -> Dynamic Web Project i nazwijmy go “MorseCodeService”.
Jeśli nie mamy żadnej głębszej potrzeby to możemy zostawić wszystkie pozostałe parametry z domyślnymi wartościami. U mnie wygląda to następująco:
Stwórzmy nową klasę java o nazwie MorseCode w pakiecie pl.smike.services, która będzie miała dwie metody txt2Morse i morse2Txt. Na postawie tej klasy stworzymy nasz Web Service.
Kliknij prawym przyciskiem myszy na plik MorseCode.java i wybierz New -> Other -> Web Service.
Upewnij się, że są zaznaczone obie metody klasy MorseCode.
Kliknij Next, w tym momencie kreator utworzy wszystkie potrzebne pliki i zależności do odpalenia Web Service’u. Na ekranie powinien pojawić sie przycisk Start Service, który należy wybrać.
Jeśli wszystko poszło prawidłowo i serwer odpalił się, dostępny będzie przycisk Next. Po jego użyciu nasz nowy serwis zostanie zdeployowany. Możemy zakończyć kreator -Finish.
W tym momencie nasz serwis powinien już być uruchomiony i prawidłowo działać. Dostępne, zdeployowane lokalnie serwisy w projekcie możemy sprawdzić pod adresem: http://localhost:8080/MorseCodeService/services
Tworzenie klienta Web Service’u
Naszego klienta stworzymy na podstawie pliku WSDL opisującego Web Service. Jest to o tyle dobre podejście, iż na ogół tworząc klienta Web Service’u posiadamy tylko plik WSDL.
Stwórzmy zatem nowy projekt: File -> New -> Project -> Dynamic Web Project i nazwijmy go “MorseCodeClient”. Wszystkie pozostałe parametry ustawmy takie jak w przypadku “MorseCodeService”.
Kliknij prawym przyciskiem myszy na nazwie projektu i wybierz New -> Other -> Web Service Client.
W polu Service Definition musimy podać plik wsdl. Kliknij Browse. W oknie, które nam sie pojawi moglibyśmy podać URL do tego pliku, ale możemy zrobić prościej i wybierzemy go z istniejącego projektu MorseCodeService. Kliknij zatem jeszcze raz na Browse i wybierz plik MorseCode.wsdl.
Ostatni krok przygotowujący klienta to umiejscowienie plików źródłowych. Zostawmy wartości domyśle i klikamy Finish. W tym momencie zostaną utworzone wszystkie potrzebne pliki i zależności do komunikacji z Web Service’em. Najważniejsza klasą, która nas będzie interesować jest MorseCodeProxy. To przy jej pomocy zdobędziemy referencje do klasy MorseCode lub wywołamy pośrednio metody z tej klasy.
Stwórzmy nową stronę index.jsp w katalogu WebContent (New -> Other -> JSP). Strona ta będzie interfejsem użytkownika naszego klienta.
Mając już interfejs użytkownika ostatnią rzeczą będzie stworzenie servletu, który będzie wywoływał Web Service. Wybierz New -> Other -> Servlet i nazwij go TranslateServlet i umieść w pakiecie pl.smike.servlets. Kreator zadba o odpowiednie wpisy w web.xml’u tak więc nie musisz sie o to martwić.
Jeśli wszystko poszło dobrze możemy odpalać i testować naszego klienta. Kliknij prawym przyciskiem myszy na nazwe projektu i wybierz: Run As -> Run on Server. Po zdeployowaniu naszej aplikacji na serwere wpisz w przeglądarce adres http://localhost:8080/MorseCodeClient/index.jsp . I to już wszystko.
Podsumowanie
Jak widać tworzenie Web Service’ów w Eclipsie jest rzeczą prostą i sprowadza się do wyklinania prawie wszystkiego. Tworząc w pełni funkcjonalny Web Service nie musimy się zagłebiać w szczegóły jego jego działania na serwerze, ani sposobu komunikacji z klientem.









Maj 8th, 2010 at 15:09
Bardzo interesujący wpis. Ze 100% pewnością wpadnę jeszcze po więcej lektury.
Sierpień 5th, 2010 at 11:12
Witam, mam to samo oprogramowanie, co ty (wersje), i za cholerę nie mogę przebrnąć przez utworzenie WebServis’u. Otrzymuję błąd: IWAB0506E Error when copying Axis jar files to web project. Mogę sobie podglądnąć błąd, brakuje mu pliku saaj.jar. Ręce mi opadają… Ktoś wie, jak pomóc?
Sierpień 27th, 2010 at 11:11
Bardzo fajny tutorial, niestety u mnie eclipse-europa nie dodala do web.xml servletu “TranslateServlet”. Jakby ktos mial taki problem to w web.xml:
———————————————————-code
TranslateServlet
pl.smike.servlets.TranslateServlet
TranslateServlet
/TranslateServlet
—————————————————/code
Sierpień 27th, 2010 at 11:15
<servlet>
<servlet-name>TranslateServlet</servlet-name>
<servlet-class>
pl.smike.servlets.TranslateServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TranslateServlet</servlet-name>
<url-pattern>/TranslateServlet</url-pattern>
</servlet-mapping>