Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

pdf / 8-web_services

.pdf
Скачиваний:
22
Добавлен:
06.06.2015
Размер:
296.28 Кб
Скачать

Web Services(Metro stack)

JAX-WS

Java API for XML Web Services

JAXB

Binding between XML Schema and Java Classes

Streaming API for XML

SOAP with Attachments API for Java

Термины

SOAP with Attachments API for Java (SAAJ)

Envelope structure

Encoding rules

Conventions for representing web service invocations and responses

WSDL - Web Service Description Language

UDDI — Universal Description Discovery & Integration

Web Services Interoperability (WS-I) Basic Profile

Шаги по созданию WebService

Создаем и компилируем класс (@WebService)

Используем wsgen для создания вспомогательных объектов

Создаем и размещаем WAR файл

Создаем код клиента

Используем wsimport для создания вспомогательных объектов

Компилируем и запускаем клиента

Requirements of a JAX-WS

Endpoint

@javax.jws.WebService или @javax.jws.WebServiceProvider

Можно использовать атрибут endpointInterface для задания интерфейса

Методы public, и не static и не final

@javax.jws.WebMethod на нужных методах

Принимаемые и возвращаемые параметры должны быть JAXB-compatible

Класс должен быть:

public not final and not abstract

public constructor

Нельзя опрделять finalize

Может определить методы javax.annotation.PostConstruct или PreDestroy

Пример

@WebService()

public class TestWebService {

/**

* Web service operation */

@WebMethod(operationName = "sayHello") public String sayHello(String name) {

return "Hi "+name+"!";

}

}

A Simple JAX-WS Client

public class Main {

static TestWebServiceService service = new TestWebServiceService();

public static void main(String[] args) { try {

TestWebService port = service.getTestWebServicePort();

System.out.println(port.sayHello("Petya")); } catch(Exception e) {

e.printStackTrace();

}

}

}

JAXB Architecture

Компоненты

Schema compiler

Создает по ХМЛ схеме классы

Schema generator

Создает по аннотированным классам ХМЛ схему

Binding runtime framework

Обеспечивает unmarshalling (reading) and marshalling (writing)

Binding Process

Generate classes

XML schema -> Java classes

Compile classes

Unmarshal

Generate content tree Создание дерева JAXB classes

Validate (optional)

Process content

Marshal

JAXB Mapping of XML Schema

Built-in Data Types

XML Schema Type

Java Data Type

xsd:string

java.lang.String

xsd:integer

java.math.BigInteger

xsd:int

int

xsd.long

long

xsd:short

short

xsd:decimal

java.math.BigDecimal

xsd:float

float

xsd:double

double

xsd:boolean

boolean

xsd:byte

byte

xsd:QName

javax.xml.namespace.QName

xsd:dateTime

javax.xml.datatype.XMLGregorianCalendar

xsd:base64Binary

byte[]

Соседние файлы в папке pdf