Создавать будем Java Web Service приложение, которое назовем CustomerApplication. Приложение будет просто возвращать количество клиентов в заданном регионе. Наше JAX-WS приложение будет основываться на stateless session EJB. Мы будем использовать класс в качестве веб-сервиса и встраиваемые session EJB чтобы обеспечить функциональность для веб-сервиса. Stateless и singleton session beans могут использоваться в качестве endpoint-ов. В EJB 3.1 stateful session beans тоже могут использоваться в качестве endpoint-ов.
1) Создание EJB обеспечивающего функциональность
Для простоты EJB будет поддерживать только два метода getCustomerCount и getCustomerCountByRegion.
Открываем NetBeans и создаем Java Web Application с именем CustomerApplication. Я использую сервер GlassFish Server 3.1.2.
В папке Source Packages создаем два пакета: devtype для класса CustomerManager и jaxws для класса CustomerService для JAX-WS веб-сервиса.
Session EJB создается через меню NetBeans.
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package devtype; /** * * @author Devtype */ @Stateless public class CustomerManager { public int getCustomerCount() { return 27; } public int getCustomerCountByRegion(String region) { if("West".equals(region)) { return 12; } else if("East".equals(region)) { return 15; } else { return 0; } } }
2) Создание JAX-WS веб-сервиса использующего эту функциональность
Сервис создается через меню NetBeans с вкл. опцией "Implement Web Service as Statelss Session Bean". Используем аннотации @WebService для определения класса как endpoint-а и аннотируем методы сервиса аннотацией @WebMethod.
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package jaxws; import devtype.CustomerManager; import javax.ejb.EJB; import javax.jws.WebMethod; import javax.jws.WebService; /** * * @author Devtype */ @WebService() public class CustomerService { @EJB private CustomerManager customerManager; @WebMethod public int getCustomerCount() { return customerManager.getCustomerCount(); } @WebMethod public int getCustomerCountByRegion (String region) { return customerManager.getCustomerCountByRegion(region); } }
В конце делается Deploy и Test Web Service.
--
Начало работы с веб-службами JAX-WS - учебный курс по IDE NetBeans