Katalog książek cz. 3: Web Service

Podobne dokumenty
Katalog książek cz. 2

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

Modele danych walidacja widoki zorientowane na model

DPDInfoServices. Specyfikacja biznesowa. Version DPD Polska Sp. z O.O. Warszawa

Laboratorium 1 Wprowadzenie do PHP

AZACO Eksporter. Instrukcja konfiguracji oraz automatycznego eksportu danych. Przygotowanie środowiska...2. Konfiguracja zadań eksportu danych...

Współpraca z platformą Emp@tia. dokumentacja techniczna

Aplikacje internetowe - laboratorium

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

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

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Wprowadzenie do Doctrine ORM

Laboratorium 7 Blog: dodawanie i edycja wpisów

Enterprise JavaBeans (EJB)

Aplikacje WWW - laboratorium

Płatności CashBill - SOAP

KONFIGURACJA SERWERA USŁUG INTERNETOWYCH

Zaawansowane aplikacje internetowe - laboratorium

Spring Web MVC, Spring DI

Dodawanie i modyfikacja atrybutów zbioru

GroupWise WebAccess Basic Interface

Tworzenie i wykorzystanie usług sieciowych

Instrukcja laboratoryjna

Laboratorium 6 Tworzenie bloga w Zend Framework

Współpraca z platformą dokumentacja techniczna

Web Services (SOAP) Ćwiczenie 1

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

Zaawansowane aplikacje internetowe

Instrukcja integratora - obsługa dużych plików w epuap2

Spis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHNICZNA 1

INFO-R. Instalacja pakietu programów obsługujących platformę

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

WebNotarius. Specyfikacja techniczna komunikacji z usługą WebNotarius. wersja 1.1

Konfiguracja konta pocztowego w Thunderbird

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

Programowanie obiektowe

INSTRUKCJA INSTALACJI ORAZ UŻYTKOWANIA PROGRAMU FORMULARZ OFERTOWY

Katalog książek cz. 1

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

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Kurs walut. Specyfikacja projektu. Marek Zając

Integracja Obieg Dokumentów - GiS Spis treści

Sesje i logowanie. 1. Wprowadzenie

Instrukcja konfigurowania poczty Exchange dla klienta pocztowego użytkowanego poza siecią uczelnianą SGH.

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP002017_ Laboratorium 11 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Wytyczne dot. aktualizacji przez gminy państwowego rejestru granic i powierzchni jednostek podziałów terytorialnych kraju w zakresie adresów

CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Języki i techniki programowania Ćwiczenia 2

ezwroty WebApi Dokumentacja techniczna

Gatesms.eu Mobilne Rozwiązania dla biznesu

UMOWY INSTRUKCJA STANOWISKOWA

Dokumentacja użytkownika systemu wnioskowania i zarządzania certyfikatami BPTP O3 w systemie ITIM Wersja 2.1

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Manual konfiguracji konta dla fax2mail

Bazodanowe usługi sieciowe w technologii ASP.NET. dr inż. Tomasz Tatoń

Testowanie aplikacji. Kurs języka Ruby

Tomasz Greszata - Koszalin

Aplikacje internetowe i rozproszone - laboratorium

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

KONFIGURACJA SERWERA USŁUG INTERNETOWYCH WWW ORAZ FTP

Program GroupWise WebAccess interfejs podstawowy

Zanim zaczniesz. Warto ustawić kartę sieciową naszego serwera.

Import danych z plików CSV

Ajax. 1. Wprowadzenie. 2. Aplikacja serwerowa

Programowanie w Ruby

Aplikacje www laboratorium

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

Edytor Edit+ - dodawanie zdjęć i. załączników. Instrukcja użytkownika

Programowanie Komponentowe WebAPI

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

Opisane poniżej czynności może wykonać administrator komputera lub administrator serwera SQL (tj. użytkownik sa).

Zaawansowane aplikacje WWW - laboratorium

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

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

Najważniejsze informacje dla klienta na temat Portalu Serwisowego D-Link Spis treści

PCPR. Konfigurator programu.

Wysyłka wniosko w ZUS - EKS. Instrukcja użytkownika aplikacji Wysyłka wniosków ZUS EKS

Wykaz zmian w programie WinAdmin Replikator

Forum Client - Spring in Swing

Shell Card Online usługa fakturowania elektronicznego Podręcznik użytkownika

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce)

Klient poczty elektronicznej - Thunderbird

Wykład 5: PHP: praca z bazą danych MySQL

Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services

Udostępnianie drukarek za pomocą systemu Windows (serwer wydruku).

5.4. Tworzymy formularze

INSTRUKCJA OBSŁUGI PROGRAMU

Zaawansowane aplikacje internetowe laboratorium

Instrukcja korzystania z systemu poczty NetMail (wersja skrócona)

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Aplikacje WWW - laboratorium

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Terytorialna analiza danych

Aplikacja CMS. Podręcznik użytkownika

Metody i struktury usługi sieciowej śledzenia przesyłek Poczty Polskiej S.A.

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Transkrypt:

Katalog książek cz. 3: Web Service Przygotowanie usługi sieciowej (web service) 1) Uruchom Netbeans, otwórz projekt przygotowany w ramach poprzednich zajęć. W kolejnych krokach przerobimy klasę BookManager na usługę sieciową SOAP oraz opublikujemy tę usługę z użyciem wbudowanego serwera HTTP. 2) Przygotowanie klasy BookManager do opublikowania jako web service z użyciem standardu JAX-WS: o Przed nagłówkiem klasy BookManager umieść adnotację @WebService. Adnotacja ta informuje biblioteki JAX-WS o tym, że dana klasa ma być użyta jako usługa sieciowa. @WebService public class BookManager { o Przed każdą z metod do wyszukiwania umieść adnotację. Adnotacja ta informuje o tym, że dana metoda ma być udostępniana w ramach usługi sieciowej. public Book searchbyisbn(string isbn) { public List<Book> searchbytitle(string title) { public List<Book> searchbyauthor(string author) { 3) Opublikowanie usługi z użyciem klasy Endpoint i wbudowanego serwera HTTP: o W klasie Main na końcu metody main() dodamy kod uruchamiający serwer HTTP z usługą. Zakładając, że mamy utworzoną wcześniej zmienną bm klasy BookManager, usługę uruchomi następujący kod: Strona 1

String url = "http://localhost:666/books"; Endpoint.publish(url, bm); Serwer obsługujący usługę zostanie uruchomiony na porcie 666, usługa będzie dostępna pod adresem http://localhost:666/books o Uruchom aplikację, w przeglądarce internetowej wejdź na adres: http://localhost:666/books?wsdl o Jeśli wyświetlony został dokument WSDL opisujący usługę, serwer działa prawidłowo. Testowanie usługi z użyciem soapui 1) Uruchom aplikację soapui. Stwórz nowy projekt w okienku kreatora podaj adres dokumentu WSDL. 2) Przetestuj usługę wyślij kilka żądań wyszukania książek po tytule, po autorze. Znajdź ręcznie numer ISBN wybranej książki, a potem wyślij żądanie wyszukujące po tym numerze. 3) Zwróć uwagę na format komunikatów na przykładzie żądania wyszukania po tytule: <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:book="http://books/"> <soapenv:header/> <soapenv:body> <book:searchbyauthor> <arg0>lis</arg0> </book:searchbyauthor> </soapenv:body> </soapenv:envelope> Argument wysyłany do metody searchbyauthor nosi nazwę arg0 takie nazwy nadawane są automatycznie przez biblioteki JAX-WS (arg0, arg1 itd ). Jeśli chcemy zmienić to na własną, więcej mówiącą nazwę, musimy dodać do usługi adnotacje @WebParam. Zrobimy to w kolejnym kroku. Strona 2

Podobną sytuację mamy w przypadku odpowiedzi serwera przykładowa odpowiedź na żądanie wyszukania wygląda tak: <S:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:searchbytitleresponse xmlns:ns2="http://books/"> <result id="ajaxja"> <author>steven Olson</author> <isbn>978-83-246-1110-2</isbn> <pages>232</pages> <publisher>helion</publisher> <title>ajax on Java</title> <year>2007</year> </result> Jeśli chcemy zmienić automatycznie przyjętą nazwę result na book, musimy dodać w kodzie usługi adnotację @WebResult. Nadawanie własnych nazw argumentom i wynikom 1) Przejdź do Netbeans, zatrzymaj usługę. W kodzie klasy BookManager dodaj następujące adnotacje: o przed każdym argumentem metod wyszukujących adnotację @WebParam z odpowiednią nazwą parametru, na przykład: searchbytitle(@webparam(name = "title") String title) { w nagłówku każdej z metod, przed określeniem typu zwracanego, adnotację @WebResult z nazwą book, na przykład: public @WebResult(name = "book") List<Book> searchbytitle() { 2) Uruchom ponownie usługę. Przetestuj ją w soapui. Strona 3

Zadanie 1 Dodaj w usłudze metodę do dodawania książek, przyjmującą jako argument obiekt klasy Book. Wywołanie metody powinno spowodować dodanie książki do listy w klasie BookManager (dodane książki nie muszą być zapisywane do pliku). Przed dodaniem książki sprawdź, czy przesłany obiekt zawiera niepuste pola title i author. Jeśli pola są puste, rzuć wyjątkiem. Zadanie 2 Dodaj w usłudze metodę do usuwania książek na podstawie podanego ID. Jeśli usuwanie się powiodło, zwróć wartość boolean true. Jeśli nie zostanie znaleziona książka o podanym ID, rzuć wyjątkiem. Zadanie 3 Przetestuj dodawanie i usuwanie książek w soapui przygotuj zestaw testów (Test suite) z następującymi żądaniami: o wywołanie addbook; jako autora dodawanej książki podaj swoje nazwisko; podaj też dowolne unikatowe wartości jako tytuł i id; o wyszukanie dodanej książki po tytule; dodaj asercje sprawdzające, czy książka została znaleziona i czy zawiera dane zgodne z żądaniem; o wyszukanie dodanej książki po autorze; dodaj asercje jak wyżej; o wywołanie addbook z pustym tytułem i pustym autorem; dodaj asercję sprawdzającą, czy odpowiedź zawiera informacje o błędzie (SOAP Fault); o usunięcie wcześniej dodanej książki po id; dodaj asercję sprawdzającą wynik (spodziewamy się true).. Strona 4

Zadanie dodatkowe Uruchom jako web service własny kod z poprzedniego zadania dodatkowego (na własnych danych). Dopilnuj nazewnictwa argumentów i wyników. W narzędziu soapui przygotuj przykładowy zestaw testów. Dodaj mechanizm logowania, analogiczny do użytego w systemie Magento (patrz laboratorium nr 3). Dla uproszczenia nazwa użytkownika i hasło mogą być zaszyte na sztywno w kodzie. Strona 5