Vytvoření webové služby a její otestování

Cílem tohoto článku je ukázat vytvoření jednoduché webové služby ve vývojovém prostředí NetBeans, její deploy na aplikační server GlassFish, otestování přímo ve webovém prohlížeči a vytvoření klienta, který bude tuto službu volat.

1. Vytvoření, deploy a otestování webové služby

  • V prostředí NetBeans vytvoříme nový projekt (typ: Web Application) „BCV-test-WS“, jako server zvolíme GlassFish (v mém případě GlassFish 3).
  • V projektu vytvoříme novou webovou službu (pravý click na projekt -> New -> Other.. -> Web services -> Web Service), nazveme jí např. „BCVInfo“, package např. „eu.bcv“
  • Otevřeme nově vytvořený soubor BCVInfo.java a napíšeme do ní následující kód:

 

package eu.bcv;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

/**
 *
 * @author Frantisek Hradil
 */
@WebService()
public class BCVInfo {

    @WebMethod(operationName = "getResult")
    public Integer getResult(@WebParam(name = "a")
            final Integer a, @WebParam(name = "b")
            final Integer b) throws IllegalArgumentException {

        if (a == null || b == null) {
            throw new IllegalArgumentException("Invalid attribute value.");
        }

        return a + b;
    }
}

 

  • Klikneme pravým tlačítkem na projekt „BCV-test-WS“ a vybereme volbu „Deploy“.
  • Po úspěšném nasazení na aplikační server vybereme ve stromové struktuře projektu záložku „Web services“, ve které uvidíme položku „BCVInfo“. Klikneme na ni pravým tlačítkem a vybereme volbu „Test Web Service“.
  • V prohlížeči se nám otevře webová stránka, do které můžeme zadat vstupní parametry pro námi vytvořenou funkci „getResult“. Po odeslání formuláře získáme výsledek, který nám vrátila webová služba.

2. Vygenerování klienta k vytvořené webové službě

  • V prostředí NetBeans vytvoříme nový projekt (typ: Java Application) „BCV-test-WS_client“.
  • Klikneme pravým tlačítkem na projekt „BCV-test-WS_client“ → New → Other → Web Services → Web Service Client
  • Vybereme projekt „BCV-test-WS“ a v něm webovou službu „BCVInfo“. Jako package zvolíme např. „eu.bcv.client“.
  • Otevřeme třídu „Main.java“ a zapíšeme do ní následující kód:

 

package bcvtestws_client;

import eu.bcv.client.BCVInfo;
import eu.bcv.client.BCVInfoService;

/**
 *
 * @author Frantisek Hradil
 */
public class Main {

    public static void main(String[] args) {
        
        try {
            BCVInfoService service = new BCVInfoService();
            BCVInfo port = service.getBCVInfoPort();
            Integer result = port.getResult(3, 5);
            
            System.out.println("result = " + result);
        } catch (Exception e) {
            System.out.println("Error = " + e);
        }
    }
}

 

Ukázali jsme si, jak vytvořit webovou službu pomocí JAX-WS (Java API for XML Web Services). Naznačili jsme, jak otestovat webovou službu přímo ve webovém prohlížeči bez nutnosti psát klienta. Výhodou tohoto testu je možnost zobrazení zasílaného SOAP Requestu a přijatého SOAP Response přímo v prohlížeči. Díky nástroji NetBeans je možné si z WSDL vygenerovat klienta webové služby. V tomto případě bylo zavolání takto jednoduché webové služby snadné a vystačili jsme si s několika málo řádky zdrojového kódu. Vývojové prostředí NetBeans nám výrazně ulehčilo práci tím, že za nás vygenerovalo klientskou aplikaci. Pro začátečníky je díky tomu výrazně snažší proniknout do psaní webových služeb.