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

Простая web-служба

Создадим web-службу с использованием программного продукта Axis (v. 1.2) (Apache eXtensible Interaction System). Разрабатывается концерном W3C. Для разработки приложения будем использовать входящий в Axis сервер – Simple Axis Server.

public class Ws

{public String get()

{return “Hello”;}

}

Код службы сохраняется в файле Ws.jws (jws_java web Service).

Код клиента web-службы

import org.apache.axis client*;

import java.net.*;

public class Client{

public static void main (String[] args)

throws Exception{

Services=newServices();

Call call=(Call)s.createCall();

Call.setTarget End points.oress(new URL(“http://localhost:8080/Ws.jws”);

Call.setUparationName(“get”);

String response=(String)call invoke(new Object[]{});

System.out.println(“Get from.Ws:”+response);}}

Код клиента содержит классы service и Call которые входят в пакет org.apache.axis.Client.*. Основную роль в получении web-услуг играет класс Call. C его помощью идентифицируется адрес web-службы и название web-услуги. Кроме того его метод invoke возвращает результат выполнения web-услуги. Запуск сервера web-службы осуществляется с помощью команды:

>java org.appache.axis.transport.http.Simple Axis Server.

После запуска клиента имени: Get from Ws: Hello

SOAP

Web-службы обмениваются информацией с клиентами с помощью XML-документа. Специальные теги XML и правила их использования для обмена XML-документами web-служб определены протоколом SOAP. В настоящее время поддержкой протокола SOAP занимается корпорация W3C. Спецификация определяет SOAP-послание как документ XML не содержащий тип XML-документа и инструкция по его обработки. Корневой элемент этого документа называется Envelope, а его пространство имен имеет префикс Soapenv. В корневой элемент вкладывается не обязательный элемент Header, содержащий заголовок послания, а также обязательный элемент Body в который записывается само послание, т.е. структура SOAP-послания имеет вид:

<?xml version = “1.0”?>

<oapenv: Envelope xmlns: soapenv = “http://www.w3.org/2003/05/soap-envelope”>

<soapenv: Header>

<!—Заголовок послания-->

</soapenv: Body>

<!—-Содержание документа-->

</soapenv: Body>

</soapenv: Envelope>

Версия протокола SOAP 1.2 позволяет создать запрос к SOAP-серверу по методу Get, т.е. набрав в строке браузера http://localhost:8080Ws.jws?Method=get. Мы получим xml-документ ответ сервера web-службыWs.

<?xml version = “1.0” encoding = “UTF-8”?>

<soapenv: Envelope xmlns: soapenv = http://www.w3.org/2003/05/soap-envelope

xmlns: xsd = http://www.w3.org/2001/XML-schema-Instance>

<soapenv: Body>

<getResponse soapenv: encoding Style = “http://www.w3.org/2003/05/soap-encoding”>

<ns1: result xml ns1 = “http://www.w3.org/2003/05/soap-rpc”>

getReturn

</ns1:result>

<get Return xsi: type = “xsd: string”>Hello</get Result>

<soapenv: Body>

</soapenv: Envelope>

Новое пространство имен:

  1. xsi - используется для описания элементов xml-схем.

  2. ns1 - используется для описания возвращаемого значения web-служб.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]