Wielowarstwowe aplikacje internetowe - laboratorium

Podobne dokumenty
Zaawansowane aplikacje internetowe - laboratorium Web Services (część 2).

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe laboratorium

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Web Services (SOAP) Ćwiczenie 1

Zaawansowane aplikacje internetowe laboratorium

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium

Enterprise JavaBeans (EJB)

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Aplikacje WWW - laboratorium

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Aplikacje internetowe i rozproszone - laboratorium

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Programowanie Obiektowe GUI

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Tworzenie i wykorzystanie usług sieciowych

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Aplikacje WWW - laboratorium

6. Powtórz kroki z punktu 5. dla strony sorry.jsp, zmieniając jedynie treść wyświetlanego tekstu ( Niestety zamiast Witaj )

Aplikacje WWW - laboratorium

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Projektowanie aplikacji internetowych laboratorium

Zaawansowane aplikacje internetowe

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Aplikacje WWW - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Aplikacje internetowe laboratorium

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie dotyczące platformy Java EE zostało przygotowane z myślą o środowisku NetBeans w wersji 7.3 (do pobrania z

Instalacja Webroot SecureAnywhere przy użyciu GPO w Active Directory

E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence.

PekaoBIZNES 24 Szybki START. Przewodnik dla Użytkowników z dostępem podstawowym

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Microsoft.NET: Warstwa dostępu do danych (DAL) w aplikacjach ASP.NET Web Forms

Zaawansowane aplikacje WWW - laboratorium

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Nowe notowania epromak Professional

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1.

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows XP

Zaawansowane aplikacje internetowe

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Nowe notowania epromak Professional

Aplikacje internetowe - laboratorium

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Java EE: JSF + EJB + JPA

Pracownia internetowa w szkole ZASTOSOWANIA

Programowanie obiektowe

1 Wprowadzenie do J2EE

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7

Instalacja NOD32 Remote Administrator

Instalacja platformy Magento CE wersja szybka

Aplikacje internetowe - laboratorium ASP.NET praca z bazą danych

Informatyka I : Tworzenie projektu

Ćwiczenia 9 - Swing - część 1

Laboratorium - Poznawanie FTP

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

1. Wstęp Niniejszy dokument jest instrukcją użytkownika dla aplikacji internetowej DM TrackMan.

Laboratorium 10 - Web Services

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Java Database Connectivity

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista

Zastosowanie komponentów EJB typu Session

Laboratorium - Udostępnianie folderu, tworzenie grupy domowej i mapowanie dysku sieciowego w Windows 7

Instrukcja instalacji i konfiguracji Karty EDGE/GPRS SonyEricsson GC85

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Skrócona instrukcja funkcji logowania

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

XML-owe bazy danych ćwiczenia 1

Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >.

Laboratorium - Użycie narzędzia Przywracanie systemu w systemie Windows 7

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Problemy techniczne SQL Server

Ćwiczenie 2. Tworzenie serwisów internetowych. Zapoznanie z pakietem WebRatio

Platformy Programowania

11. Rozwiązywanie problemów

Laboratorium - Archiwizacja i odzyskiwanie danych w systemie Windows XP

Spis treści 1. Wstęp Logowanie Główny interfejs aplikacji Ogólny opis interfejsu Poruszanie się po mapie...

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

Problemy techniczne SQL Server

Laboratorium - Narzędzie linii uruchamiania w systemie Windows Vista

Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie

Zadanie 11. Przygotowanie publikacji do wydrukowania

Laboratorium - Zabezpieczanie kont, danych i komputera w systemie Windows 7

Laboratorium - Udostępnianie folderu i mapowanie dysku sieciowego w systemie Windows XP

Instrukcja użytkownika

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

16) Wprowadzenie do raportowania Rave

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Transkrypt:

Wielowarstwowe aplikacje internetowe - laboratorium Web Services Do wykonania ćwiczeń 1, 2 i 6, dotyczących platformy Microsoft.NET potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Visual Studio 2005 jest udostępniane studentom w ramach programu MSDN Academic Alliance (http://www.microsoft.com/poland/edukacja/uczelnie/default.mspx). W celu uzyskania pakietu instalacyjnego Microsoft Visual Studio 2005 należy skontaktować się z prowadzącym zajęcia. Spośród ćwiczeń dotyczących platformy Java EE ćwiczenia 3 i 4 zostały przygotowane z myślą o środowisku JDeveloper 10.1.3 (do pobrania z http://otn.oracle.com), a ćwiczenie 5 Netbeans 6.1 (do pobrania z http://www.netbeans.org/, pakiet Web & Java EE Bundle). Autorzy ćwiczeń: Mikołaj Morzy, Marek Wojciechowski Ćwiczenie 1 Celem ćwiczenia jest utworzenie usługi Web Service umożliwiającej obliczenie całkowitego kosztu paliwa dla podanych wartości ceny litra benzyny, długości trasy w km i spalania w litrach na 100 km. 1. Uruchom środowisko Microsoft Visual Studio 2005. 2. Utwórz projekt typu ASP.NET Web Service w języku Visual C#. a) Z menu głównego wybierz File New Web Site. Wybierz szablon ASP.NET Web Service, język Visual C# i lokalizację File System. Zmodyfikuj zaproponowaną nazwę katalogu, zmieniając ostatni element ścieżki podkatalogów na SpalanieWS. (Możesz również zmienić całą ścieżkę prowadzącą do podkatalogu witryny. Może to być konieczne, gdy nie masz prawa zapisu w lokalizacji zaproponowanej przez kreator.) Kliknij przycisk OK.

b) Wynikiem działania kreatora powinien być plik z rozszerzeniem.asmx reprezentujący Web Service i klasa zawierająca jego kod (w naszym przypadku w języku C# - stąd rozszerzenie.cs pliku z kodem źródłowym klasy). 2. Zaimplementuj serwis obliczający spalanie. a) Zmień nazwę przestrzeni nazw serwisu na http://www.cs.put.poznan.pl/wai/. [WebService(Namespace = "http://www.cs.put.poznan.pl/wai/")] b) Zastąp wygenerowaną przez kreator metodę usługową HelloWorld() poniższą metodą obliczającą całkowity koszt paliwa (w miejsce kropek wpisz odpowiednią formułę): [WebMethod] public double koszt(double cena, double odleglosc, double spalanie) { return...; }

c) Zapisz wszystkie zmiany (np. File Save All). d) Uruchom Web Service wybierając z menu kontekstowego dla pliku.asmx w panelu Solution Explorer opcję View in Browser. e) Obejrzyj zawartość wygenerowanego automatycznie pliku WSDL opisującego Web Service klikając link Service Description. f) Wróć do strony głównej serwisu i przetestuj działanie metody usługowej koszt() klikając link koszt. g) Na stronie do testowania metody usługowej wprowadź wartości trzech parametrów i kliknij przycisk Invoke. (Uwaga: Jako separatora części dziesiętnej wartości parametrów użyj kropki). Ćwiczenie 2 Celem ćwiczenia jest utworzenie klienta serwisu utworzonego w Ćwiczeniu 1. Aplikacja kliencka będzie miała postać strony ASP.NET znajdującej się w tym samym projekcie. 1. Dodaj do projektu referencję do komponentu Web Service znajdującego się w bieżącym projekcie. a) W panelu Solution Explorer z menu kontekstowego dla węzła projektu (website) wybierz opcję Add Web Reference.

b) W oknie Add Web Reference kliknij link Web services in this solution.

c) Na liście znalezionych Web Services kliknij link reprezentujący serwis utworzony w Ćwiczeniu 1.. d) Zmień nazwę referencji (Web reference name) na spalanie i kliknij przycisk Add Reference. Poprzez utworzoną w tym kroku referencję dostępna będzie automatycznie generowana klasa proxy, poprzez którą tworzona strona ASP.NET będzie odwoływać się do komponentu Web Service.

2. Utwórz formularz do wprowadzania wartości parametrów dla metody serwisu obliczającej całkowity koszt paliwa. a) W panelu Solution Explorer z menu kontekstowego dla węzła projektu (website) wybierz opcję Add New Item. Zaznacz szablon Web Form, a jako język wybierz Visual C#. Kliknij przycisk Add. b) Przejdź do edycji utworzonej strony w trybie Design. c) Techniką drag-and-drop umieść na stronie trzy kontrolki TextBox, jedną kontrolkę Button i jedną kontrolkę Label. d) Korzystając z palety właściwości zmień identyfikatory (ID) kontrolek umieszczonych na stronie na CenaTextBox, OdlegloscTextBox, SpalanieTextBox, ObliczButton i WynikLabel. Zmień etykietę (Text) przycisku ObliczButton na Oblicz. Wyczyść treść (Text) dla kontrolki WynikLabel. e) Rozmieść kontrolki jedną pod drugą wprowadzając między nimi znaki przejścia do nowej linii i dodaj opisy pól tekstowych do wprowadzania wartości parametrów. f) Klikając dwukrotnie na kontrolce przycisku przejdź do edycji metody obsługującej zdarzenie jego naciśnięcia (kliknięcia). g) Jako ciało metody obsługującej zdarzenie naciśnięcia przycisku wprowadź poniższy kod: spalanie.service service = new spalanie.service(); WynikLabel.Text = "Obliczony koszt paliwa to " + service.koszt(double.parse(cenatextbox.text), Double.Parse(OdlegloscTextBox.Text), Double.Parse(SpalanieTextBox.Text)) + "."; Powyższy kod tworzy obiekt klasy proxy, a następnie za jego pośrednictwem wywołuje metodę komponentu Web Service, przekazując jej jako wartości parametrów wartości wprowadzone przez użytkownika do formularza. Wynik działania metody, poprzedzony tekstowym opisem, jest umieszczany w kontrolce typu Label na stronie. h) Zapisz wszystkie zmiany (np. File Save All). i) Uruchom stronę wybierając z menu kontekstowego dla pliku strony w panelu Solution Explorer opcję View in Browser. j) Przetestuj działanie aplikacji podając różne wartości parametrów. (Uwaga: Jako separatora części dziesiętnej wartości parametrów użyj separatora wybranego w ustawieniach regionalnych systemu Windows. W Polsce domyślnym jest przecinek.)

Ćwiczenie 3 Celem ćwiczenia jest przygotowanie prostej aplikacji prezentującej technologię usług sieciowych (ang. Web Services). Przygotowana klasa języka Java zostanie opublikowana w postaci usługi sieciowej i udostępniona na zewnątrz przez osadzenie w serwerze aplikacji. Dodatkowo, wygenerowany zostanie klient usługi testujący jej poprawność. 1. Uruchom narzędzie JDeveloper 2. Utwórz nową aplikację bez szablonu (No Template). 3. Kliknij prawym przyciskiem myszy na ikonie aplikacji i z menu kontekstowego wybierz New Project. Rozwiń gałąź kategorii General i zaznacz kategorię Projects. W prawym oknie zaznacz element Empty Project. Kliknij przycisk OK.

4. Wpisz nazwę projektu Web Services 2 i kliknij przycisk OK. 5. Kliknij prawym przyciskiem myszy na ikonie projektu Web Services 2. Z menu kontekstowego wybierz opcję New W oknie kategorii zaznacz gałąź General. Z listy dostępnych elementów w oknie po prawej stronie wybierz Java Class. Kliknij przycisk OK.

6. Pierwszym krokiem w tworzeniu usługi sieciowej będzie zdefiniowanie własnej klasy reprezentującej wyjątek polegający na niepoprawnym wywołaniu usługi, np. poprzez podanie jako parametrów liczb ujemnych albo liczb nie będących liczbami całkowitymi. Wpisz nazwę klasy: WrongArgumentsException, nazwę pakietu: webservices, nazwę nadklasy: java.lang.exception. Kliknij przycisk OK. 7. Plik WrongArgumentsException.java został automatycznie załadowany do edytora. Uzupełnij plik poniższym kodem. package webservices; public class WrongArgumentsException extends Exception { } public WrongArgumentsException(String message) { super(message); }

8. Programy stanowiące usługi sieciowe powinny być szczególnie dobrze dokumentowane ze względu na to, że ich głównymi użytkownikami są użytkownicy zdalni. Stąd, na projektant(k)ach usług sieciowych ciąży obowiązek starannego opisywania API. W przypadku języka Java najbardziej odpowiednim narzędziem jest Javadoc. Uzupełnij kod pliku WrongArgumentsException.java o komentarze Javadoc. Przykładowa wersja finalna pliku może wyglądać tak. package webservices; /** * The class <code>wrongargumentsexception</code> is a form * of <code>throwable</code> and indicates the condition when input * parameters for the Web Service are incorrect. * * @author Mikolaj Morzy * @version 0.1 */ public class WrongArgumentsException extends Exception { } /** * Constructs a WrongArgumentsException with the specified detail * message. * * @param message the message describing this particular exception. */ public WrongArgumentsException(String message) { super(message); } 9. Kliknij prawym przyciskiem myszy na ikonie projektu Web Services 2 i z menu kontekstowego wybierz New, zaznacz kategorię General i wybierz element Java Class. Kliknij przycisk OK. Wprowadź nazwę klasy: EuclideanAlgorithm oraz nazwę pakietu: webservices. Kliknij przycisk OK.

10. Do znajdowania największego wspólnego podzielnika dwóch liczb wykorzystamy algorytm Euklidesa (http://en.wikipedia.org/wiki/euclids_algorithm). Wprowadź do pliku poniższy kod, nie zapomnij o udokumentowaniu poszczególnych elementów. package webservices; /** * The <code>euclideanalgorithm</code> class is an implementation * of the well-known algorithm attributed traditionally to Euclid. * The algorithm takes as input two positive integers and computes * the greatest common divisor of the two. The first appearance of * the algorithm dates back to 300 BC in Euclid's <i>elements</i>. * * @author Mikolaj Morzy * @version 0.1 */ public class EuclideanAlgorithm { /** * Computes the greatest common divisor of the two * input positive integers * * @param a The first number * @param b The second number * @return The greatest common divisor of the input parameters * @throws WrongArgumentsException If one of the parameters * is not positive, or when input parameters are not integers */ public int GreatestCommonDivisor(String a, String b) throws WrongArgumentsException { int i, j; try { i = Integer.parseInt(a); j = Integer.parseInt(b); } catch (NumberFormatException e) { throw new WrongArgumentsException("Parameters must be integers"); } if ((i < 0) (j < 0)) throw new WrongArgumentsException("Parameters must be positive"); } } while (i!= j) if (i > j) i -= j; else j -= i; return i;

11. W nawigatorze obiektów rozwiń gałąź reprezentującą projekt Web Services 2, a następnie rozwiń gałąź Application Sources. Zaznacz węzeł reprezentujący pakiet webservices. Z menu głównego wybierz Run Javadoc webservices. Po zakończeniu generowania dokumentacji w oknie dziennika (u dołu ekranu) kliknij na odnośnik View Documentation. Ekran komputera powinien wyglądać teraz tak. 12. W kolejnym kroku udostępnimy stworzoną klasę EuclideanAlgorithm (wraz z pomocniczą klasą WrongArgumentsException) w postaci usługi sieciowej. Kliknij prawym przyciskiem myszy na ikonie pliku EuclideanAlgorithm.java i z menu kontekstowego wybierz opcję Create J2EE Web Service. Wybierz wersję J2EE 1.4 i kliknij przycisk OK.

13. Podaj nazwę usługi: EuclideanWebService. Upewnij się, że jest włączona opcja Autogenerate Service Endpoint Interface. Kliknij przycisk Zakończ (pozostałe parametry usługi sieciowej pozostają domyślne). 14. Zauważ, że w nawigatorze obiektów zmieniła się ikona reprezentująca plik EuclideanAlgorithm.java, a zamiast tego pojawiła się ikona reprezentująca całą usługę. W celu obejrzenia całej zawartości usługi zaznacz tę ikonę i z menu głównego wybierz View Structure.

15. Kolejny krok to uruchomienie serwera aplikacji, na którym zostanie zainstalowana usługa sieciowa. Wykorzystamy do tego celu serwer OC4J dostarczany razem z narzędziem JDeveloper. Otwórz okno MS-DOS i przejdź do katalogu %JDEV_HOME%\j2ee\home. Następnie uruchom serwer aplikacji OC4J przez wydanie poniższego polecenia. Uwaga: przy pierwszym uruchomieniu serwera aplikacji nastąpi automatyczna instalacja wielu komponentów, dodatkowo instalator może zapytać o hasło dla administratora. Proszę wówczas podać hasło welcome i je potwierdzić. C:\> java jar oc4j.jar

16. Sprawdź, czy serwer aplikacji faktycznie uruchomił się poprawnie. W tym celu otwórz przeglądarkę i przejdź do adresu http://localhost:8888 17. Wróć do narzędzia JDeveloper. W nawigatorze obiektów (okno z lewej strony ekranu) przejdź na zakładkę Connections (alternatywnie, z menu głównego wybierz View Connection Navigator). Kliknij prawym przyciskiem myszy na ikonie Application Server i z menu kontekstowego wybierz opcję New Application Server Connection. W pierwszym oknie asystenta kliknij przycisk Dalej >. W drugim oknie asystenta wpisz nazwę połączenia: LocalAppServerConnection oraz typ połączenia: Autonomiczny OC4J 10g 10.1.3. Kliknij przycisk Dalej >.

18. W kolejnym kroku wpisz hasło administratora serwera aplikacji OC4J. Kliknij przycisk Dalej >. 19. W trzecim kroku asystenta pozostaw wszystkie wartości domyślne (lokalny serwer, brak ścieżki URL, domyślny port RMI. Kliknij przycisk Dalej >. W ostatnim kroku kliknij przycisk Test Connection. Kliknij przycisk Zakończ.

20. Wróć do okna nawigatora aplikacji (główne menu View Application Navigator). Rozwiń gałąź Resources i kliknij dwukrotnie na pliku WebServices.deploy stanowiącym deskryptor instalacji usługi sieciowej na serwerze aplikacji. Przejdź do gałęzi File Groups WEB-INF/classes Filters. ę, że zaznaczone są 3 pliki klas jak na poniższym obrazku. Kliknij przycisk OK. 21. Kliknij prawym przyciskiem myszy na pliku WebServices.deploy i z menu kontekstowego wybierz Deploy to LocalAppServerConnection. W oknie które się pojawi kliknij przycisk OK. Poczekaj na zakończenie procesu instalacji (możesz obserwować postęp instalacji w oknie dziennika u dołu ekranu).

22. Wróć do okna przeglądarki i przejdź do adresu http://localhost:8888/em. Zaloguj się do serwisu jako administrator serwera aplikacji (użytkownik oc4jadmin). Z głównego ekranu aplikacji wybierz odnośnik Web Services. 23. Kliknij przycisk Test Service dla zainstalowanej właśnie usługi sieciowej. Na kolejnym ekranie kliknij przycisk Test Web Service. W przeglądarce zostanie otwarty domyślnie wygenerowany punkt dostępowy do usługi sieciowej.

24. Odnośnik Service Description prowadzi do pliku WSDL opisującego naszą usługę sieciową (Podejrzyj jego zawartość). Istnieje także możliwość pobrania pieńka (ang. stub) do usługi sieciowej przygotowanego w języku JavaScript. Dodatkowo, punkt dostępowy umożliwia przetestowanie usługi sieciowej. Wprowadź do pól formularza wartości testowe: 100 i 725. 25. Przed wywołaniem usługi sieciowej przełącz się w tryb podglądu postaci koperty SOAP która zostanie wysłana do usługi sieciowej (przycisk radiowy Źródło XML). Następnie kliknij przycisk Invoke i obejrzyj zwróconą odpowiedź. 26. Powróć do okna umożliwiającego podawanie parametrów wywołania usługi sieciowej. Wpisz niepoprawny parametr, np. -5. Obejrzyj uzyskany wynik. Ćwiczenie 4 Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej usługę sieciową (ang. web service). utworzoną w poprzednim ćwiczeniu. Aplikacja składa się z formularza HTML i serwletu. 1. Z menu głównego narzędzia JDeveloper wybierz File New Application. Wybierz kategorię General i typ Application. Kliknij przycisk OK. 2. Podaj nazwę aplikacji WSClient. Kliknij przycisk OK. 3. Automatycznie pojawi się okno dialogowe z pytaniem o nazwę i lokalizację projektu. Wpisz nazwę projektu EuclideanClient i kliknij przycisk OK. 4. Kliknij prawym przyciskiem myszy na ikonie projektu EuclideanClient. Z menu kontekstowego wybierz opcję New W oknie kategorii rozwiń gałąź Business Tier i zaznacz kategorię Web Services. Z listy dostępnych elementów w oknie po prawej stronie wybierz Web Service Proxy. Kliknij przycisk OK.

5. Automatycznie otworzył się asystent tworzenia obiektów proxy. Na pierwszym ekranie kliknij przycisk Dalej >. Wpisz w pierwszym polu adres deskryptora usługi sieciowej utworzonej w poprzednim ćwiczeniu, pracującej na serwerze OC4J (http://localhost:8888/webservicesapp-web%20services%202-contextroot/euclideanwebservicesoaphttpport?wsdl) i naciśnij klawisz Tab. Kliknij przycisk Dalej >. 6. W kolejnym kroku asystenta pozostaw proponowany docelowy adres URL i kliknij przycisk Dalej >.

7. W 3 i 4 kroku asystenta kliknij przycisk Dalej >. 8. W kroku piątym zmień nazwę pakietu dla generowanych obiektów proxy na webservices. Kliknij przycisk Zakończ. 9. W edytorze została otwarta automatycznie wygenerowana klasa proxy. Przejdź do metody main() i znajdź komentarz Add your own code here. Wprowadź zamiast niego poniższy kod testujący, czy usługa sieciowa działa poprawnie:. System.out.println(myPort.greatestCommonDivisor("45","20")); 10. Uruchom aplikację (np. przez naciśnięcie klawisza F11) i zaobserwuj wynik działania. 11. W kolejnym kroku zaprojektujemy wygodniejszy interfejs dla usługi sieciowej. W tym celu zbudujemy formularz HTML umożliwiający podawanie tekstu do tłumaczenia. Kliknij prawym przyciskiem myszy na projekcie EuclideanClient i

wybierz z menu kontekstowego opcję New W oknie kategorii rozwiń gałąź przy kategorii Web Tier i zaznacz kategorię HTML. W oknie z prawej strony zaznacz element HTML Page. Kliknij przycisk OK. 12. Na pierwszym oknie asystenta kliknij przycisk Dalej >. Wprowadź nazwę pliku: form.html. Kliknij przycisk Dalej >. 13. W ostatnim kroku asystenta wprowadź tytuł strony: Euclidean Algorithm i kliknij przycisk Zakończ. 14. Strona form.html zostanie otwarta w edytorze wizualnym. W pierwszej kolejności zastosujemy gotowy szablon CSS. W tym celu w oknie Components (w prawym górnym rogu obszaru roboczego) wybierz z listy rozwijanej pozycję CSS, a następnie przeciągnij i upuść szablon o nazwie JDeveloper na puste białe pole edycji.

15. W oknie Components wybierz z listy rozwijanej element HTML Forms. Z listy komponentów przeciągnij i upuść element Form. Automatycznie otworzy się okno z właściwościami formularza. Jako akcję wpisz euclidean, metoda wywołania serwletu to GET, sposób kodowania parametrów to text/plain. Kliknij przycisk OK. 16. Kliknij myszką wewnątrz elementu formularza i wpisz tekst: Please enter two integers:. Pod tekstem upuść przeciągnięte z listy komponentów 2 elementy TextField. Dla pierwszego podaj nazwę num1, a dla drugiego num2. 17. Poniżej obu pól tekstowych, ale w obrębie formularza, umieść komponent Submit Button. W automatycznie otwartym oknie właściwości wpisz jako atrybut Value tekst Calculate Greatest Common Divisor i kliknij przycisk OK. 18. Ostatni krok to przygotowanie serwletu który przyjmie parametry wysłane z formularza, utworzy obiekt proxy do usługi, dokona wywołania usługi i wyświetli wynik. Kliknij prawym przyciskiem myszy na ikonie projektu EuclideanClient i z menu kontekstowego wybierz New Rozwiń gałąź kategorii Web Tier i zaznacz kategorię Servlets. W prawej części okna wybierz element HTTP Servlet. Kliknij przycisk OK.

19. W pierwszym oknie asystenta tworzenia serwletów kliknij przycisk Dalej >. W drugim oknie wybierz wersję Servlet 2.4\JSP 2.0 (J2EE 1.4). Kliknij przycisk Dalej >. W kolejnym kroku wpisz nazwę serwletu Euclidean, nazwę pakietu webservices, upewnij się że zostanie wygenerowana metoda doget(). Kliknij przycisk Dalej > 20. Upewnij się, że do deskryptora instalacji web.xml zostanie dopisane odwzorowanie serwletu. Kliknij przycisk Zakończ.

21. Kod serwletu został załadowany do edytora. Dodaj kod tworzący instancję klasy proxy, odczytujący parametry przesłane z formularza, wywołujący usługę obliczenia największego wspólnego dzielnika i wyświetlający wynik. Ostateczna postać kodu metody doget() serwletu powinna być następująca: public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype(content_type); } EuclideanWebServiceSoapHttpPortClient myport; String num1 = request.getparameter("num1"); String num2 = request.getparameter("num2"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<head><title>euclidean</title></head>"); out.println("<body>"); try { myport = new EuclideanWebServiceSoapHttpPortClient(); int res = myport.greatestcommondivisor(num1, num2); out.println("the greatest common divisor of the two integers is:<br>"); out.println(res); } catch (Exception e) { out.println(e.getmessage()); } out.println("</body></html>"); out.close();

22. Przejdź do pliku form.html. Uruchom aplikację naciskając klawisz F11. Przetestuj działanie aplikacji dla różnych danych. 23. Zatrzymaj serwer OC4J kombinacją klawiszy Ctrl-C w oknie jego konsoli. Ćwiczenie 5 Celem ćwiczenia jest przygotowanie usługi sieciowej w oparciu o klasę Java oznaczoną adnotacjami. 1. Uruchom środowisko Netbeans 6.1. 2. Utwórz nowy projekt typu Web Application. 3. W kreatorze nowej aplikacji zmień nazwę aplikacji na EvenOddApp, jako serwer wybierz GlassFish, a dla pozostałych opcji pozostaw wartości domyślne.

4. W utworzonym projekcie utwórz usługę sieciową wybierając z menu kontekstowego dla węzła projektu opcję New Web Service. 5. Jako nazwę komponentu web service podaj EvenOddWebService a jako nazwę pakietu evenodd. Pozostaw wybraną opcję Create Web Service from Scratch (alternatywą jest publikowanie istniejącego sesyjnego komponentu EJB jako usługi sieciowej). 6. Edytując wygenerowaną klasę Java w trybie Design, korzystając z przycisku Add Operation dodaj dwie metody iseven i isodd przyjmujące parametr o nazwie val typu int i zwracające wartość boolean.

7. Przełącz się na tryb edycji źródła klasy. Zaobserwuj adnotacje związane z wykorzystaniem klasy jako usługi sieciowej dodane przez kreator. 8. Zaimplementuj samodzielnie metody iseven() i isodd(), tak aby pierwsza z nich zwracała prawdę dla liczb parzystych, a druga dla nieparzystych. 9. Uruchom aplikację np. klawiszem F6. 10. Przejdź do strony umożliwiającej przetestowanie utworzonej usługi wybierając dla niej z menu kontekstowego w drzewie projektów opcję Test Web Service.

11. Przetestuj obie metody usługowe dla różnych wartości parametrów. Zapamiętaj adres pliku WSDL opisującego usługę (będzie wykorzystany w kolejnym ćwiczeniu). 12. Pozostaw działającą aplikację i środowisko Netbeans. Ćwiczenie 6 Celem ćwiczenia jest przygotowanie prostej konsolowej aplikacji.net w języku C# będącej klientem usługi sieciowej zaimplementowanej w poprzednim ćwiczeniu w języku Java. 1. Uruchom środowisko Microsoft Visual Studio 2005. 2. Utwórz projekt typu Console Application w języku Visual C#. Nazwij go WSClient.

3. Uruchom kreator dodawania do projektu referencji do komponentu Web Service. 4. Wprowadź do pola URL adres pliku WSDL opisującego usługę sieciową z poprzedniego ćwiczenia pracującą na serwerze GlassFish uruchomionym z poziomu środowiska Netbeans. Następnie kliknij Go.

5. Jako nazwę referencji pozostaw localhost i kliknij Add Reference. 6. Przejdź do edycji pliku Program.cs i dodaj w metodzie Main poniższy kod tworzący instancję wygenerowanej klasy Proxy i wywołujący na jej rzecz metody usługowe: localhost.evenoddwebserviceservice proxy = new localhost.evenoddwebserviceservice(); Console.WriteLine("Is 11 even? " + proxy.iseven(11)); Console.WriteLine("Is 11 odd? " + proxy.isodd(11)); Console.WriteLine("Press Enter..."); Console.ReadLine(); 7. Uruchom aplikację.