Java Web Services Developer Pack v1.3 Zhongnan Shen 12/04/2003.

27
Java Web Services Developer Pack v1.3 Zhongnan Shen 12/04/2003

Transcript of Java Web Services Developer Pack v1.3 Zhongnan Shen 12/04/2003.

Java Web Services Developer Pack v1.3

Zhongnan Shen12/04/2003

Outlines

What is WSDP? What’s in WSDP? An Example

The Coffee Break Application Resources

What is WSDP

A free integrated toolkit used to build and test XML applications, Web services, and Web applications with the latest Web service technologies and standards implementations ;

Supports WS-I Basic Profile 1.0; Can be downloaded at

http://java.sun.com/webservices/downloads/webservicespack.html

size:26M; platform: windows, unix

What’s in WSDP Java Architecture for XML Binding (JAXB) v1.0.2; Java API for XML Processing (JAXP) v1.2.4; Java API for XML-based RPC (JAX-RPC) v1.1; SOAP with Attachments API for Java (SAAJ) v1.2; Java API for XML Registries (JAXR) v1.0.5; JavaServer Faces (JSF) v1.0 EA4; JavaServer Pages Standard Tag Library (JSTL) v1.1 EA; XML and Web Services Security v1.0 EA2; Java WSDP Registry Server v1.0_06; Ant Build Tool 1.5.4; Apache Tomcat v5 development container; Ws-I Supply Chain Management Sample Application 1.0;

What’s in WSDP Java Architecture for XML Binding (JAXB)

Providing API and tools for automating the mapping between XML documents and Java objects;

Compiling an XML schema into one or more Java technology classes;

The following operations can be performed: unmarshal XML content into a Java representation; access, update and validate the Java

representation against schema constraint; marshal the Java representation of the XML content

into XML content.

What’s in WSDP Java Architecture for XML Binding (JAXB)

XML Schema Java Class Files

<xsd:element name="purchaseOrder" type="PurchaseOrderType"/>

PurchaseOrder.java

<xsd:element name="comment" type="xsd:string"/> Comment.java

<xsd:complexType name="PurchaseOrderType"> <xsd:sequence> <xsd:element name="shipTo" type="USAddress"/> <xsd:element name="billTo" type="USAddress"/> <xsd:element ref="comment" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="orderDate" type="xsd:date"/></xsd:complexType>

PurchaseOrderType.java

What’s in WSDP Java API for XML Processing (JAXP)

supports processing of XML documents using DOM, SAX, and XSLT; Document Object Model (DOM): an application

programming interface for HTML and XML documents;

Simple API for XML (SAX): a common interface implemented for many different XML parsers;

XSL Transformations (XSLT): a language for transforming XML documents into other XML documents;

supports for XML schema and an XSLT compiler (XSLTC);

What’s in WSDP Java API for XML-Based RPC (JAX-RPC)

an API for building Web services and clients that use remote procedure calls (RPC) and XML ;

an easy-to-develop programming model for development of SOAP based web services, including web service clients and endpoints; developers are not exposed to the complexity of SOAP

protocol level mechanisms; support for WSDL->Java and Java->WSDL mapping; support for SOAP message processing model; support for document based messaging; support HTTP level session management and SSL

based security mechanisms.

What’s in WSDP Java API for XML-Based RPC (JAX-RPC)

What’s in WSDP

SOAP with Attachments API for Java (SAAJ) enables developers to produce and consume

messages conforming to the SOAP 1.1 specification and SOAP with Attachments note;

derived from the package originally defined in the JAXM 1.0 specification;

SOAP messages can contain both XML contents and non-XML contents (as attachments);

Messages sent using the SAAJ API are called request-response messages;

What’s in WSDP SOAP with

Attachments API for Java (SAAJ)

What’s in WSDP Java API for XML Registries (JAXR)

provides a uniform and standard Java API for accessing different kinds of XML Registries; ebXML Registry and Repository standard; Universal Description, Discovery, and

Integration (UDDI); JAXR enables Java software programmers to use a

single, easy-to-use abstraction API to access a variety of XML registries. A unified JAXR information model describes content and metadata within XML registries;

What’s in WSDP Java API for XML Registries (JAXR)

What’s in WSDP JavaServer Faces Technologies

a server-side user interface framework for Java technology-based Web applications ;

Main components include: A set of APIs for:

representing UI components and managing their state; handling events and input validation;defining page navigation;supporting internationalization and accessibility .

A JavaServer Pages (JSP) custom tag library for expressing UI components within a JSP page.

What’s in WSDP JavaServer Faces Technologies

What’s in WSDP JavaServer Pages Standard Tag Library (JSTL)

encapsulates core functionality common to many JSP applications;

<c:forEach var="item" items="${sessionScope.cart.items}">   ...   

<tr>      <td align="right" bgcolor="#ffffff">

     ${item.quantity}    </td>   

...

</c:forEach>

What’s in WSDP JavaServer Pages

Standard Tag Library (JSTL)

Area Subfunction Prefix

Core

Variable Support

c Flow Control

URL Management

Miscellaneous

XML

Core

x Flow Control

Transformation

I18n

Locale

fmt Message formatting

Number and date formatting

Database SQL sql

Functions Collection length

fn String manipulation

What’s in WSDP

XML and Web Services Security Transport-Level Security

security is addressed by the transport layer. Basic Authentication with JAX-RPC; Client-Certificate Authentication over

HTTP/SSL with JAX-RPC; Message-Level Security

security information is contained within the SOAP message.

What’s in WSDP

Java WSDP Registry Server The Java Web Services Developer Pack

(Java WSDP) Registry Server implements Version 2 of UDDI;

provide a UDDI registry for Web services in a private environment;

use it with the Java WSDP APIs as a test registry for Web services application development.

An Example Coffee Break Application The Coffee Break server obtains the

coffee varieties and their prices byquerying distributors at startup andon demand. • The Coffee Break server uses SAAJ

messaging to communicate with one of its distributors.

• The Coffee Break server uses JAXR to send a query searching for coffee distributors that support JAX-RPC to the Registry Server.

• The Coffee Break server requests price lists from each of the coffee distributors.

The Coffee Break server forwardssuborders to each distributor to getconfirmations.

An Example-Coffee Break JAX-RPC Distributor Service

Service side Service Interfacepublic interface SupplierIF extends Remote {    public ConfirmationBean placeOrder(OrderBean order)

    throws RemoteException;    public PriceListBean getPriceList() throws RemoteException; } Publishing the Service in the Registry

JAXRPublisher publisher = new JAXRPublisher();publisher.makeConnection(queryURL, publishURL);     String key = publisher.executePublish(username,

password, endpoint);

An Example-Coffee Break

JAX-RPC Distributor Service Client side

Building the Static Stub Client;Clients makes remote call through a stub, a local object which acts as a proxy for the remote service.

wscompile -gen:client -d build -classpath build config-wsdl.xml -gen:client flag instructs wscompile to generate the stubs;-d: flag tells the tool to write the output to the build subdirectory;config-wsdl.xml file: specifies the location of the WSDL file;

Invoking the remote methodPriceListBean priceList = PriceFetcher.getPriceList(distributor);

An Example-Coffee Break SAAJ Distributor Service

SAAJ Service Returning the Price List

public void doPost(HttpServletRequest req, HttpServletResponse

resp) {

…Analyze the request……Compose the message…OutputStream os = resp.getOutputStream(); reply.writeTo(os);

      os.flush();}

Returning the Order Confirmation

An Example-Coffee Break

SAAJ Distributor Service SAAJ Client

SOAPConnectionFactory scf =   SOAPConnectionFactory.newInstance();

SOAPConnection con = scf.createConnection();…… Compose the request……

SOAPMessage response = con.call(request, endpoint);

An Example-Coffee Break Coffee Break Server

The Coffee Break Server uses servlets, JSP pages, and JavaBeans components to dynamically construct HTML pages for consumption by a Web browser client. RetailPriceListServlet & RetailPriceList

The RetailPriceListServlet responds to requests to reload the price list;

Component RetailPriceList Discovering the JAX-RPC Service

JAXRQueryByName jq = new JAXRQueryByName(); connection = jq.makeConnection(queryURL, publishURL); jq.executeQuery(queryString);

Query JAX-RPC service and SAAJ service CheckoutFormBean

submits suborders to each distributor

Resources Java Web Services Developer Pack 1.3

dowload:

http://java.sun.com/webservices/downloads/webservicespack.html

Tutorial:

http://java.sun.com/webservices/docs/1.3/tutorial/doc/index.html

Sample Applications:http://java.sun.com/webservices/docs/1.3/wsi-sampleapp/index.html

Thanks for Listening