wielowarstwowe aplikacje internetowe - laboratorium · 2008-04-01 · wielowarstwowe aplikacje...
Post on 03-Apr-2020
1 Views
Preview:
TRANSCRIPT
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-context-
root/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ę.
top related