XML in programming - Web Services in Java

(przepraszam za miks językowy)

References for subject 7

Official:

Preparation

  1. 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

  2. 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

  3. Unpack XML07.zip – this is a whole Eclipse workspace, not a single project.
  4. Eclipse

    1. Have Eclipse Indigo, Juno, or Kepler for Java EE Developers
    2. Use the above unpacked workspace.
    3. 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.
    4. 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:

  1. 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.
  2. 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.

  1. Run the program.
  2. 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).

  1. Run the program.
  2. 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:

  1. 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!).
  2. Alternatywnie można użyć polecenia command line wsconsume (z JBossa) albo wsimport (z Javy).
  3. Uzupełnij implementację.
  4. 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.

  1. Uruchom na serwerze (np. Add and Remove).
  2. Połącz się z usługą za pomocą SoapUI i przetestuj obie operacje
  3. 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).
  4. Następnie wykonaj ponownie zapytania i zauważ różnice w SOAP (a także w WSDL).
  5. 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

Można uruchmić projekty na serwerze.


Valid XHTML 1.1Valid CSS