
- •JAVA-ТЕХНОЛОГИЯ
- •Средства Web-программирования в Java
- •Java Servlet API
- •Альтернативы сервлетам
- •Преимущества сервлетов
- •Контейнеры сервлетов
- •Жизненный цикл сервлета
- •Java Servlet API(1/2)
- •Java Servlet API(1/2)
- •Пример(1/4)
- •Пример(2/4)
- •Пример(3/4)
- •Пример(4/4)
- •Неудобство при использовании сервлетов
- •Java Server Pages (JSP)
- •Преимущества перед ASP
- •JSP-страница
- •Пример JSP-страницы
- •Запуск примера
- •Java Web Start
- •Структура файла .jnlp
- •Разработка Jаva Web Start- приложения
- •Java Web-сервисы
- •Распределенные приложения в Java Enterprise Edition
- •Распределенные приложения в JEE
- •Клиентские приложения в JEE
- •Взаимодействие JEE-клиентов
- •Поддержка Web-сервисов в JEE
- •JAX-RPC – механизм построения и использования Web-сервисов
- •Взаимодействие между JAX-RPC клиентом и Web-сервисом
- •Интерфейс HelloService
- •Его реализация HelloImpl
- •Конфигурационный файл для генерации Web-сервиса (config-interface.xml)
- •Генерация и использование Web- сервиса
- •Взаимодействие клиента и сервера в JAX-RPC
- •Web-сервисы в Java EE 6 (GlassFish 3.0)
- •Виды Web-сервисов в JEE 6
- •JAX-WS Web-сервисы
- •JAX-WS Web-сервисы
- •JAX-WS Web-сервисы
- •Пример JAX-WS клиента
- •Пример JAX-WS клиента
- •Использование JAX-RS аннотаций
- •Использование JAX-RS аннотаций
- •Использование аннотаций для методов запроса
- •Использование аннотаций для

Интерфейс HelloService
package helloservice; import java.rmi.Remote;
import java.rmi.RemoteException;
public interface HelloIF extends Remote {
public String sayHello(String s) throws RemoteException;
}
(C) В.О. Сафонов. 2013

Его реализация HelloImpl
package helloservice;
public class HelloImpl implements HelloIF
{
public String message ="Hello"; public String sayHello(String s) {
return message + s;
}
}
(C) В.О. Сафонов. 2013

Конфигурационный файл для генерации Web-сервиса (config-interface.xml)
<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
<service
name="MyHelloService"
targetNamespace="urn:Foo"
typeNamespace="urn:Foo"
packageName="helloservice"> <interface name="helloservice.HelloIF"/>
</service>
</configuration>
(C) В.О. Сафонов. 2013

Генерация и использование Web- сервиса
cd <INSTALL>/j2eetutorial14/examples/jaxrpc/helloservice/
asant build
Подцели:
-compile-service
-generate-wsdl
wscompile -define -mapping build/mapping.xml -d build -nd build
-classpath build config-interface.xml
Будет выполнена сборка сервиса; генерируется класс-файл и WSDL- файл сервиса в поддиректории build; в конечном итоге, сервис будет реализован в виде сервлета
Для развертывания сервиса используется утилита deploytool, которая создает дескриптор Web-приложения и упаковывает его вместе с результатами сборки в .war – файл
Использование Web-сервиса:
http://localhost:8080/hello-jaxrpc/hello
(C) В.О. Сафонов. 2013

Взаимодействие клиента и сервера в JAX-RPC
(C) В.О. Сафонов. 2013

Web-сервисы в Java EE 6 (GlassFish 3.0)
GlassFish – совместный проект Sun / Oracle по разработке сервера приложений для JEE
Текущая версия: GlassFish 3.0
Новые возможности:
- с точки зрения языка Java – широкое использование аннотаций (например, @WebService)
- новые технологии создания Web-сервисов – JAX-WS и JAX-RS
- persistence – API для сохранения информации об объектах и их взаимодействия с СУБД
- интеграция с NetBeans 6.x
(C)В.О. Сафонов. 2013

Виды Web-сервисов в JEE 6
“Big” Web services – JAX-WS – основаны на SOAP- протоколе и определениях сервисов в формате WSDL; поддерживают асинхронный обмен; сервисы “общего вида”
RESTful Web services (REpresentational State Transfer) – JAX-RS. Не требуют формата SOAP для сообщений и формата WSDL для описаний сервисов
RESTful-сервисы не имеют состояний (stateless), т.е. более надежны и требуют меньше ресурсов. Допускают кеширование. Используются для PDA (КПК)
Проект Jersey (JSR 311): Реализация RESTful –
(C) В.О. Сафонов. 2013
сервисов для JEE

JAX-WS Web-сервисы
(C) В.О. Сафонов. 2013

JAX-WS Web-сервисы
(C) В.О. Сафонов. 2013

JAX-WS Web-сервисы
Основаны на SOAP-сообщениях
Реализация использует аннотации
Аннотации аналогичны атрибутам
.NET для Web-сервисов: [WebMethod]
(C) В.О. Сафонов. 2013