(przepraszam za miks językowy)
References for subject 7
Official:
Preparation
SoapUI
- Download a version for your system from this site
and unpack or install
If you're working on a lab computer, you can unzip Linux installation package directly from my account
tar xfzv ~czarnik/xml/soapui-4.6.0-linux-bin.tar.gz
JBoss (version 6.1)
- Download from here and unpack
If you're working on a lab computer, you can unzip Linux installation package directly from my account
unzip ~czarnik/xml/jboss-as-distribution-6.1.0.Final.zip
- Unpack XML07.zip – this is a whole Eclipse workspace, not a single project.
Eclipse
- Have Eclipse Indigo, Juno, or Kepler for Java EE Developers
- Use the above unpacked workspace.
- Go to Help > Market Place, type
JBoss Tools
and choose a version for your Eclipse. From the list of packages select only JBossWS Tools and JBoss AS Tools.
- After a restart go to Servers tab (visible in Java EE perspective) and add the JBoss server.
Start the server and check http://localhost:8080 address in a Web browser.
Client side
Task 1.
Use Soap UI to connect to remote services:
- Cdyne Weather (copy WSDL address,
in Soap UI add new SOAP project and paste the copied address to the second field). Check the current weather in the city identified with ZIP 10101.
- Global Weather (WSDL)
Note the differences between formats of the responses. Find relevant differences in WSDLs. Which approach is better?
Task 2. SAAJ client
Project SAAJ_Weather contains a client of Cdyne Weather service which uses SAAJ library.
- Run the program.
- Add code that finds and prints current wind (or whatever).
Task 3. JAX-WS client
Project JAXWS_Weather contains a client of Cdyne Weather service which uses high-level JAX-WS (proxy object).
- Run the program.
- Print more information (wind, humidity, or whatever).
Server side by JAX-WS
Top-down
Przykład Kalkulator na trzy sposoby. Projekty Kalkulator... zawierają gotowe WSDL-e
i pozwalają spróbować generowania kodu Javy na ich podstawie.
Task 4.
Dla każdej wersji Kalkulatora - RPC, DocumentBare i DocumentWrapped:
- Wygeneruj klasy Javy poleceniem Eclipse'a (jeśli masz wtyczkę JBossTools) Generate Java Bean Skeleton.
Uwaga! Na ekranie dialogowym, który się pojawi, opuść suwak do pozycji "Develop service" oraz wybierz implementację Web Serwisów "JBossWS" (a nie Axis!).
- Alternatywnie można użyć polecenia command line wsconsume (z JBossa)
albo wsimport (z Javy).
- Uzupełnij implementację.
- Wdróż usługę na serwer (np. Server > Add and Remove) i przetestuj za pomocą SoapUI.
Bottom-up
Task 5.
Projekt Hello zawiera prostą usługę z dwiema operacjami: sayHello
i getPerson
.
- Uruchom na serwerze (np. Add and Remove).
- Połącz się z usługą za pomocą SoapUI i przetestuj obie operacje
- Odkomentuj adnotacje, odśwież aplikację na serwerze (Full Publish), odśwież definicję w SoapUI (wejść w zielone
I
i F5 albo Refresh, zaznaczyć pierwsze 4 opcje od góry). - Następnie wykonaj ponownie zapytania i zauważ różnice w SOAP (a także w WSDL).
- Za pomocą adnotacji
@XmlElement
i @XmlAttribute
w klasach Person
i Address
zmień nazwy elementów (np. first-name
zamiast firstName
), a płeć przesyłaj jako atrybut.
Odśwież projekt na serwerze i przetestuj ponownie.
Low level service implementation
- Implementacja oparta o SAAJ - zobaczy przykład SAAJServer.
- Implementacja jako Provider JAX-WS - zobaczy przykład XSLTProvider.
Można uruchmić projekty na serwerze.