Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
полный ответ по веб сервис.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
324.24 Кб
Скачать

27. Apache Axis2 пакеті

Что такое «Ось» - палка от колес, а если в контексте механизма Web-сервисов, это Axis2 (Axis – ось eng.). Проект прославленной группы разработчиков Apache или «Java-образная» реализация Фреймворка технологии Web-сервисов. В данной статье, я хочу, на примере использования, показать способ разработки приложений с Web-сервисной архитектурой. В предыдущей статье Что такое web-сервисы и с чем их едят, я попытался показать и описать механизм взаимодействия приложений по средствам клиент-серверной технологии - Web-сервисов. Теперь для более детального изучения этого «механизма», я хочу привести пример интеграции приложения, а точнее двух приложений: клиента и сервера, по средствам web-cервис движка или можно сказать сервера - Apache Axis2. Судя по названию сервера это второе поколение продукта от Apache основанное на наработках при создании первого Axis 1.0, но с совершенно отличающейся архитектурой.

Необходимые инструменты И так для работы нам понадобится: jdk-1.5 (или выше) Web-север Tomcat 6.0– http://tomcat.apache.org/download-60.cgi Axis2 1.3 - http://ws.apache.org/axis2/download.cgi Ant 1.6.5 - http://ant.apache.org/bindownload.cgi

Так как мы собираемся написать java приложение, соответственно нам необходимо иметь установленную и настроенную JDK. При написания статьи я использовал JDK версии 1.5.0_10. Процесс установки и настройки java в системе описан мною, в соответствующей статье Установка и настройка java.

Axis2 является серверным приложением, поэтому его можно запускать в отдельном процессе, но так как в большинстве случаев web-сервис архитектура связанна с нагрузками и требует кластеризации и маршрутизации(процесс разделения нагрузок на сервер), по этому его (Axis2) разворачивают как web-приложение на севере приложений EAS (Enterprise Application Server), в данном случае для простоты будем использовать Apache Tomcat 6.0. Процесс установки и настройки Tomcat web-севера, описан мною, в соответствующей статье Установка и Tomcat web-сервера.

28. jax - ws web сервисін құру

Java API for XML Web Services (JAX-WS) — это прикладной программный интерфейс языка Java для создания веб-служб, являющийся частью платформыJava EE. JAX-WS является заменой технологии JAX-RPC, предоставляя более документо-ориентированную модель сообщений и упрощая разработку[1] веб-служб за счёт использования аннотаций, впервые появившихся в Java SE 5. Технология JAX-WS является стандартом и описана в JSR 224. Разработка Web-сервиса

Подход первичности контракта по сравнению с подходом первичности кода

Хорошим способом знакомства с JAX-WS является разработка Web-сервиса. Web-сервис можно разработать двумя способами:

  • Первичность контракта. Начинаем с WSDL-контракта и генерируем Java-класс для реализации сервиса.

  • Первичность кода. Начинаем с Java-класса и с помощью аннотаций генерируем WSDL-файл и Java-интерфейс.

Подход с первичностью WSDL требует хорошего понимания WSDL и XSD (XML Schema Definition) для определения форматов сообщений. Если вы являетесь новичком в Web-сервисах, сначала лучше придерживаться принципа первичности кода. Этот подход и будет использоваться в данном учебном руководстве при разработке Web-сервисов.

Разработка Web-сервисов исходя из кода

При использовании подхода первичности кода работа начинается с Java-класса или классов, реализующих функциональные возможности, которые вы хотите отобразить в виде сервисов. Такой подход особенно полезен, когда Java-реализации уже существуют и необходимо лишь отобразить их в виде сервисов.

Разработка Web-сервиса обработки заказов

Давайте начнем с создания Web-сервиса обработки заказов, принимающего информацию о заказе, месте доставки, заказываемых позициях и, в конечном итоге, генерирующего в качестве ответа идентификатор подтверждения (confirmation ID). Код этого сервиса представлен в листинге 1. Это макетная реализация, выводящая идентификатор клиента и количество заказываемых позиций на консоль, а затем возвращающая фиктивный идентификатор заказа A1234. (Исходный код полного приложения можно загрузить, используя ссылки, приведенные в разделе "Загрузка" данного руководства.) Извлеките исходный код на диск C в папку JAXWS-Tutorial. Эта папка содержит исходный код, показанный в листинге 1.

Листинг 1. Реализация Web-сервиса обработки заказов

package com.ibm.jaxws.tutorial.service;

import javax.jws.WebMethod;

import javax.jws.WebService;

import javax.jws.soap.SOAPBinding;

import com.ibm.jaxws.tutorial.service.bean.OrderBean;

//JWS-аннотация, указывающая, что имя portType Web-сервиса

//равно "OrderProcessPort", имя сервиса равно

//"OrderProcess", а targetNamespace, использующийся в сгенерированном

//WSDL, равен "http://jawxs.ibm.tutorial/jaxws/orderprocess".

@WebService(serviceName = "OrderProcess",

portName = "OrderProcessPort",

targetNamespace = "http://jawxs.ibm.tutorial/jaxws/orderprocess")

//JWS-аннотация, определяющая отображение сервиса на

//протокол SOAP-сообщений. В частности, она определяет, что SOAP-сообщения

//являются литералами документа.

@SOAPBinding(style=SOAPBinding.Style.DOCUMENT,use=SOAPBinding.Use.LITERAL,

parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)

public class OrderProcessService {

@WebMethod

public OrderBean processOrder(OrderBean orderBean) {

// Выполнить обработку...

System.out.println("processOrder called for customer"

+ orderBean.getCustomer().getCustomerId());

// Заказанными позициями являются

if (orderBean.getOrderItems() != null) {

System.out.println("Number of items is "

+ orderBean.getOrderItems().length);

}

//Обработать заказ.

//Установить идентификатор заказа.

orderBean.setOrderId("A1234");

return orderBean;

}

}

OrderBean хранит информацию о заказе, как показано в листинге 2. В частности, он содержит ссылки на клиента, заказанные позиции и объект адреса доставки.