Java Web Services Developer Pack v1.3 by tsk11317

VIEWS: 8 PAGES: 27

									Java Web Services
Developer Pack v1.3


             Zhongnan Shen
             12/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"                   PurchaseOrder.
type="PurchaseOrderType"/>                          java
<xsd:element name="comment" type="xsd:string"/>     Comment.java

<xsd:complexType name="PurchaseOrderType">          PurchaseOrder
<xsd:sequence>                                      Type.java
 <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>
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
                       Area             Subfunction    Prefix
 JavaServer Pages
                                 Variable Support
  Standard Tag                   Flow Control
  Library (JSTL)       Core
                                 URL Management
                                                       c

                                 Miscellaneous
                                 Core
                       XML       Flow Control          x
                                 Transformation
                                 Locale
                                 Message formatting
                       I18n                            fmt
                                 Number and date
                                 formatting
                     Database    SQL                   sql
                                 Collection length
                     Functions                         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
                             The Coffee Break server obtains the
 Coffee Break Application   coffee varieties and their prices by
                             querying distributors at startup and
                             on 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 forwards
                             suborders to each distributor to get
                             confirmations.
  An Example-Coffee Break
 JAX-RPC Distributor Service
   Service side
      Service Interface
     public 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 method
      PriceListBean 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/webservice
  spack.html
  Tutorial:
  http://java.sun.com/webservices/docs/1.3/tutorial/doc/i
  ndex.html
  Sample Applications:
  http://java.sun.com/webservices/docs/1.3/wsi-
  sampleapp/index.html
Thanks for Listening

								
To top