WebServiceExample

Задача: написать простой веб-сервис, позволяющий отправлять сообщения и получать подтверждение на отправку. Логику можно не писать.

Используем NetBeans 7.3.

Создадим стандартный веб-проект c Tomcat с развертыванием на GlassFish и названием WebServicesExample.

Вначале нужно создать класс веб-сервисов из меню NetBeans: Имя веб-службы: ChatService Пакет: services

В исходники ChatService можно добавить пару методов package services;

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

/** * * @author arsen */ @WebService(serviceName = "ChatService") public class ChatService {

/**    * This is a sample web service operation */   @WebMethod(operationName = "hello") public String hello(@WebParam(name = "name") String txt) { return "Hello " + txt + " !"; }   /**     * Просто отправляет сообщение * @param msg * @return true если отправка успешна */   @WebMethod(operationName = "sendMessage") public boolean sendMessage(@WebParam(name = "msg") String msg) { System.out.println("sendMessage: " + msg); return true; }   /**     * Отправляет сообщение и подтверждает ее отправку по специальному шаблону * @param msg * @return "Подтверждена отправка сообщения: " + msg */   @WebMethod(operationName = "sendMessageWithConfirm") public String sendMessageWithConfirm(@WebParam(name = "msg") String msg) { System.out.println("sendMessageWithConfirm: " + msg); return "Подтверждена отправка сообщения: " + msg; }       }

Класс, являющийся веб-сервисом, должен быть отмечен @WebService, а публичные методы @WebMethod

Теперь в WEB-INF/jsp/index.jsp можно проверить работу класса, добавив следующие строки: <%           if ( request.getParameter("msg") != null ) { ChatService cs = new ChatService; String confirm = cs.sendMessageWithConfirm(request.getParameter("msg")); out.println(confirm); %>

Теперь можно запустить проект и отправить сообщение: http://localhost:8080/WebServicesExample/?msg=Hello

Также можно из меню проекта NetBeans в Веб-службы->ChatService на методе ChatService кликнуть правой кнопкой мыши и выбрать "тестировать веб-службу".

Теперь можно создать веб-клиент, чтобы вызвать метод удаленно через своего клиента.

Для этого создаем новый файл -> Веб-службы -> Клиент веб-службы

Указываем расположение WSDL-файла веб-службы и пакет выбираем, например, clientServices

NetBeans по файлу WSDL сгенерирует классы, которые можно использовать для отправки сообщений через сервер при помощи следующего кода в index.jsp: clientServices.ChatService_Service service = new clientServices.ChatService_Service; clientServices.ChatService port = service.getChatServicePort; out.println(" Результат работы клиента: "); out.println(port.sendMessageWithConfirm(request.getParameter("msg")));