EJB и Web Services
Download
Report
Transcript EJB и Web Services
Рассматриваемые темы
Введение в Web Services
EJB и Web Services
2-1
Введение в Web Services
Что такое Web Services?
Знакомая проблема
Новое решение
2-2
Введение в Web Services
Модель «Publish-Find-Bind»
Модель «Афиширование-Поиск-Связь»
2-3
Введение в Web Services
Модель «Publish-Find-Bind»
SOAP – Simple Object Access Protocol
WSDL – Web Service Definition
Language
UDDI – Universal Description, Discovery
and Integration
2-4
Введение в Web Services
WSDL
WSDL стандарт – независимый от
реализации IDL
Определяет XML-документ,
полностью описывающий Web Service
Web-сервисы используют обмен
сообщениями с помощью SOAP
2-5
Введение в Web Services
Java API для Web-сервисов
JAX-WS (Java API for XML – Web
Services)
JSR-181
Упрощенная модель разработки
Включает устаревшие JAX-RPC и
JAXB API
Используется EJB 3.0
2-6
Рассматриваемые темы
Введение в Web Services
EJB и Web Services
2-7
EJB и Web Services
Web-сервисы в EJB 3.0
В EJB 3.0 используется новый
стандарт JAX-WS (JSR-181)
Аннотации:
@WebService
@WebMethod
@SOAPBinding
@WebParameter
@WebResult
@OneWay
2-8
EJB и Web Services
javax.jws.WebService
Аннотация @WebService
используется для указания, что класс
(интерфейс) является Web-сервисом
Параметры
targetNamespace
serviceName
wsdlLocation
endpointInterface
2-9
EJB и Web Services
javax.jws.WebMethod
Аннотация @WebMethod помечает
метод как операцию Web-сервиса
Параметры
operationName
action
2-10
EJB и Web Services
javax.jws.WebParam
Аннотация @WebParam контролирует
генерацию WSDL для параметра
метода
Параметры
name
targetNamespace
mode (IN|OUT|INOUT)
header
2-11
EJB и Web Services
javax.jws.soap.SOAPBinding
Аннотация @WebMethod определяет
поведение Web-сервиса в SOAP
Параметры
style (DOCUMENT|RPC)
use (LITERAL|ENCODED)
parameterStyle (BARED|WRAPPED)
По умолчанию – Document/Literal
Wrapped
2-12
EJB и Web Services
javax.jws.WebResult и
javax.jws.OneWay
Аннотация @WebResult контролирует
создание WSDL для возвращаемого
значения метода
Аннотация @OneWay показывает, что
метод не возвращает значения и
может вызываться асинхронно
2-13
EJB и Web Services
Атрибут endpointInterface
Аннотация @WebService позволяет
указать особый интерфейс для Webсервиса
@WebService
public interface SomeEndpoint {
public String doSomethingCool(String in);
}
@Stateless
@WebService(endpointInterface=”SomeEndpoint”)
public class SomeBean implements SomeEndpoint {
public String doSomethingCool(String in) {...}
}
2-14
EJB и Web Services
Java-клиенты с JAX-WS
Все клиенты общаются с Webсервисом посредством заглушек
Обычные Java-клиенты могут
расширить javax.xml.ws.Service
для получения заглушек
EJB-клиенты могут использовать
аннотацию @WebServiceRef
2-15
EJB и Web Services
javax.xml.ws.WebServiceRef
Аннотация @WebServiceRef
используется для переменных,
имеющих тип интерфейса Webсервиса
@Stateful
public class MyAgent implements MyAgentRemote {
@WebServiceRef(SomeService.class)
SomeEndpoint ws;
public void doSomething() {
ws.doSomethingCool();
}
}
2-16
Рассмотренные темы
Введение в Web Services
EJB и Web Services
2-17
Практика
Упражнение
Создание JAX-WS Web-сервиса.
2-18