SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
Topic 4

  Java API for XML Web Services



Assoc.Prof. Dr. Thanachart Numnonda
       www.imcinstitute.com
            August 2010
Agenda
 Java APIs   for Web Services
 JAX-RPC

 JAX-WS




                                 2
Java APIs for Web Services




                             3
JWSDP
   Java Web Services Development Pack (JWSDP) is a free
    software development kit (SDK) for developing Web
    Services
   JWSDP has been replaced by GlassFish and WSIT and
    several components are in Java SE 6.
   JWSDP APIs
          Java API for XML Processing (JAXP), v 1.3
          Java Architecture for XML Binding (JAXB), v 1.0 and 2.0
          JAX-RPC v 1.1
          JAX-WS v 2.0
          SAAJ (SOAP with Attachments API for Java)
          Java API for XML Registries (JAXR)
                                                                     4
Java API for XML Processing (JAXP)
• JAXP enables applications to parse, validate and
  transform XML documents.
• Java developers can invoke
   • SAX parser
   • DOM parser
• The main JAXP APIs are defined in the
  javax.xml.parsers package
   • SAXParserFactory
   • DocumentBuilderFactory



                                                     5
Java API for XML Binding (JAXB)
• JAXB allows Java developers to access and process XML data
  without having to know XML or XML processing.
• JAXB is a Java technology that enables you to generate Java
  classes from XML schemas by means of a JAXB binding
  compiler.
• unmarshalling
   • XML instance documents into Java content trees
• marshalling
   • Java content trees back into XML instance documents.

                                                                6
SAAJ (SOAP with Attachments
         API for Java™)
• SAAJ provides a convenient API for constructing
and sending SOAP messages without having to
directly create the XML yourself.
• SAAJ was originally part of the Java API
for XML Messaging (JAXM) Separated out from
 JAXM 1.0 into JAXM 1.1 and SAAJ 1.1
 (SAAJ 1.3 (Java EE 5))
                                                    7
JAXR
• Standard Java API for performing registry operations
  over diverse set of registries
     Web service publication & discovery

• A unified information model for describing business
  registry content
• Provides multi-layered API abstractions
     Level 0: for UDDI
     Level 1: for ebXML registry/repository
                                                         8
JAX-RPC

• XML data types to/from Java types mapping
• SOAP Message Handler framework
• WSDL to/from Java mapping
• Servlet-based Web service endpoint model
• JAX-RPC Client Programming Models
• Extensible type mapping

                                              9
JAX-WS (JAX-RPC 2.0)
•   New handler framework
•   Metadata-based Web services
•   Operational style improvement
•   Asynchronous Web services
•   Support for non-HTTP transport
•   Interoperable attachments (as part of WS-I)
•   Secure Web services (as part of Security)


                                                  10
JAXM

• JAXM is not part of Java EE 5
• JAXM-based asynchronous messaging on Java EE 5
  is supported via
     Message-driven Bean (MDB) in EJB 3 can receive
    both JMS and JAXM message types
     Connector 1.5 allows pluggability of various types
    message providers (JAXM provider and JMS
    provider)

                                                          11
Java APIs for Web Services Protocols
   SOAP
       JAXM 1.0 (JSR 67), SAAJ
       JAX-RPC => JAX-WS 2.0 (JSR 224)
   WSDL
       JAX-RPC => JAX-WS 2.0 (JSR 224)
   UDDI
       JAXR 1.0 (JSR 93)




                                          12
Sun’s Web Services Stack




                           13
JAX-RPC




          14
Remote Procedure Call (RPC)
                             Request

                            Response
        Client System                          Server System

   RPC, COM, CORBA, RMI:
    
        Synchronous communication: calling process blocks until
        there is a response
    
        More tightly coupled (than non-RPC model): client must
        find recipients and know method and its arguments
    
        Non persistent
Remote Procedure Calls

Client       Interface                  Interface         Servant

               Stub                     Skeleton



             Run Time      Protocol     Run Time

         
           Common Interface between client and Server
         
           Stub for client, Skeleton/Tie for server
         
           On-the-wire protocol needs to be agreed upon
RPC Example – Java RMI
                     <<Interface>>
                     Java Remote
                       Interface


                     rmic compiler

  Client                               Remote Object
                                       Implementation



RMI Client                               RMI Server
  Stub                                    Skeleton

           Java Remote Method Protocol (JRMP) is
                   On-the-wire protocol
RPC Example - JAX-RPC
Common Interface
   Service is described in IDL (Interface Description
    Language)
      IDL ofCORBA service
      Java RMI interface in RMI (Language specific)
      WSDL for Web service

   Used by tools to statically or dynamically generate
    and/or configure interfaces, proxies, and ties in a
    network technology specific environment
What is JAX-RPC?
   Java™ API for XML-based RPC
       Web Services operations are performed by exchanging
        SOAP 1.1 messages
   Services are described using WSDL
    •   WSDL is the contract between service provider and
        client (only contract needed)
   Web service endpoints and clients use JAX-RPC
    programming model
   Key technology for Web Services in the J2EE 1.4
    platform
JAX-RPC Design Goals
   Easy to use programming model
    •   For both defining & using a service
   Hides all the plumbing
    •   You don't have to create SOAP messages yourself
   SOAP and WSDL-based interoperability
    •   Interoperate with any SOAP 1.1 compliant peers
   Extensibility and Modularity
    •   Support new versions of XML specification, i.e. SOAP 1.2
        and beyond
    •   Message handler architecture
JAX-RPC Architecture
    JAX-RPC                                             JAX-RPC
      Client                WSDL Document            Service Endpoint
 Generated        JavaWSDL             WSDLJava
   Code

Container                                                   Container


      Client-side JAX-RPC                   Server-side JAX-RPC
        Runtime System                        Runtime System


                                SOAP

                                HTTP
JAX-RPC Runtime System
   Core of a JAX-RPC implementation:
    • Library that provides runtime services
      for JAX-RPC mechanisms
    • Implements some of the JAX-RPC APIs
   Client side:
    • Can be implemented over J2SE™, J2EE™ or J2ME™
      platforms
   Server-side:
    • J2EE 1.3 or 1.4 Containers: EJB™ or Servlet
Developing a Web Service
       Interfaces (java.rmi.Remote type)
       Must follow JAX-RPC conventions


       Implementation classes
       Servlet-based endpoint model
       Optional handler and serializer classes

tool
               WSDL      Service contract

       Packaged application (war file)
JAX-RPC : Web Service Endpoint
                                  JAX-RPC
                               Service Endpoint
          WSDL<-->Java


  WSDL Document           Container


                         Server-Side
                          JAX-RPC
                           Runtime
                           System
             SOAP

             HTTP
JAX-WS




         26
Quick overview of JAX-WS
   Easy way to use Java API for XML Web Services
       Replace JAX-RPC
   Just add @annotation to POJO
       XML Descriptor free programming
 Layer architecture
 SOAP 1.2 (Document/Literal)
 Use JAXB for data binding
 Protocol and transport independence
 Part of Java SE6 and Java EE 5 Platform
                                                    27
JAX-WS Layered Architecture




                              28
What Does It Mean?
• Upper layer uses annotations extensively
     • Easy to use
     • Great toolability
     • Fewer generated classes
• Lower layer is more traditional
     • API-based
     • For advanced scenarios
• Most application will use the upper layer only
• Either way, portability is guaranteed

                                                   29
Two ways to create a Web Service
• Starting from a WSDL file
  > Generate classes using wsimport (=> xjc)
    > WS interface
    > WS implementation skeleton class
  > Implement WS interface
  > Build and deploy
• Starting from a Java class (POJO)
  > Annotate POJO
  > Build and deploy
    > WSDL file generated automatically

                                               30
Start with a Java Class




                          31
Server-Side Programming Model: POJO

1    Write a POJO implementing the service
2    Add @WebService annotation to it
3    Build and Deploy the application
    WSDL is automatically generated at runtime
1    Point your clients at the WSDL
    e.g. http://myserver/myapp/MyService?WSDL




                                                 32
Example 1: Servlet-Based Endpoint
@WebService
public class Calculator {
    public int add( int a, int b) {
        return a + b;
    }
}



• @WebService annotation
  • All public methods become web service operations
• WSDL/Schema generated automatically
  • Default values are used
                                                       33
Service Description Default Mapping
• Java mapping => WSDL




                                       34
Example 2: EJB-Based Endpoint
@WebService
@Stateless
public class Calculator {
    public int add( int a, int b) {
        return a + b;
    }
}



• It’s a regular EJB 3.0 component, so it can use any
  EJB features
   > Transactions, security, interceptors...

                                                        35
Customizing through Annotations
@WebService(name=”CreditRatingService”,
            targetNamespace=”http://example.org”)
public class CreditRating {

     @WebMethod(operationName=”getCreditScore”)
     public Score getCredit(
         @WebParam(name=”customer”)
         Customer c) {
         // ... implementation code ...
    }
}




                                                    36
Start with a WSDL file




                         37
Generating an interface from WSDL
• WSDL => Java generation




                                      38
Implementing a Web Service from
     a Generated Interface




                                  39
Server Side Web Service




                          40
JAX-WS uses JAXB for Data Binding




                                    41
add() Parameter : Example




                            42
JAXB XML Schema to Java Mapping




                                  43
Client Side Programming




                          44
Java SE Client Side Programming

•   Point a tool (NetBeans or wsimport) at the WSDL
    for the service
       wsimport http://example.org/Calculator.wsdl
•    Generate annotated classes and interfaces
•    Call new on the service class
•    Get a proxy using a get<ServiceName>Port method
•    Invoke any remote operations


                                                       45
Example : Java SE-Based Client

CalculatorService svc = new CalculatorService();
Calculator proxy = svc.getCalculatorPort();
int answer = proxy.add(35, 7);




• No need to use factories
• The code is fully portable
• XML is completely hidden from programmer



                                                   46
Java EE Client Side Programming

•   Point a tool (NetBeans or wsimport) at the WSDL
    for the service
    wsimport http://example.org/calculator.wsdl
•   Generate annotated classes and interfaces
•   Inject a @WebServiceReference of the
    appropriate type
•   No JNDI needed
•   Invoke any remote operations
                                                      47
Example : Java EE-Based Client

@Stateless
public class MyBean {
   // Resource injection
   @WebServiceRef(CalculatorService.class)
   Calculator proxy;

    public int mymethod() {
       return proxy.add(35, 7);
}




                                             48
Client Side




              49
Annotations Used in JAX-WS
• JSR 181: Web Services Metadata for the
  Java Platform
• JSR 222: Java Architecture for XML
  Binding (JAXB)
• JSR 224: Java API for XML Web Services
  (JAX-WS)
• JSR 250: Common Annotations for the
  Java Platform
@WebService
• Marks a Java class as implementing a
  Web Service, or a Java interface as
  defining a Web Service interface.
• Attributes
  > endpointInterface
  > name
  > portName
  > serviceName
  > targetNamespace
  > wsdlLocation
@WebMethod
• Customizes a method that is exposed as
  a Web Service operation
• The method is not required to throw
  java.rmi.RemoteException.
• Attributes
 > action
 > exclude
 > operationName
@WebParam
• Customizes the mapping of an individual
  parameter to a Web Service message
  part and XML element.
• Attributes
  > header
  > mode
  > name
  > partName
  > targetNamespace
@WebResult
• Customizes the mapping of the return
  value to a WSDL part and XML element.
• Attributes
 >   header
 >   name
 >   partName
 >   targetNamespace
JAX-WS - Provider
• Web Service endpoints may choose to work at
  the XML message level by implementing the
  Provider interface.
• The endpoint accesses the message or
  message payload using this low-level, generic
  API
• Implement one of the following
  > Provider<Source>
  > Provider<SOAPMessage>
  > Provider<DataSource>
JAX-WS - Provider
JAX-WS - Dispatch
• Web service client applications may choose to
  work at the XML message level by using the
  Dispatch<T> APIs.
• The javax.xml.ws.Dispatch<T> interface
  provides support for the dynamic invocation of
  service endpoint operations.
• Similar to Provider on server side
JAX-WS - Dispatch
Resources
 Some contents are borrowed from the presentation
  slides of Sang Shin, Java™ Technology Evangelist,
  Sun Microsystems, Inc.
 Web Services and Java, Elsa Estevez, Tomasz
  Janowski and Gabriel Oteniya, UNU-IIST, Macau




                                                      59
Thank you

   thananum@gmail.com
www.facebook.com/imcinstitute
   www.imcinstitute.com



                                60

Weitere ähnliche Inhalte

Was ist angesagt?

Jax ws
Jax wsJax ws
Jax wsF K
 
SOAP, WSDL and UDDI
SOAP, WSDL and UDDISOAP, WSDL and UDDI
SOAP, WSDL and UDDIShahid Shaik
 
WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIWebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIRajkattamuri
 
SOAP, UDDI, WSDL. XML definitions
SOAP, UDDI, WSDL. XML definitions SOAP, UDDI, WSDL. XML definitions
SOAP, UDDI, WSDL. XML definitions Wish Mrt'xa
 
Soap web service
Soap web serviceSoap web service
Soap web serviceNITT, KAMK
 
SOAP--Simple Object Access Protocol
SOAP--Simple Object Access ProtocolSOAP--Simple Object Access Protocol
SOAP--Simple Object Access ProtocolMasud Rahman
 
Web service Introduction
Web service IntroductionWeb service Introduction
Web service IntroductionMadhukar Kumar
 
Intro to web services
Intro to web servicesIntro to web services
Intro to web servicesNeil Ghosh
 
Interoperable Web Services with JAX-WS
Interoperable Web Services with JAX-WSInteroperable Web Services with JAX-WS
Interoperable Web Services with JAX-WSCarol McDonald
 
Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Martin Necasky
 

Was ist angesagt? (20)

Java web services
Java web servicesJava web services
Java web services
 
SCDJWS 5. JAX-WS
SCDJWS 5. JAX-WSSCDJWS 5. JAX-WS
SCDJWS 5. JAX-WS
 
Web service introduction
Web service introductionWeb service introduction
Web service introduction
 
Web Service
Web ServiceWeb Service
Web Service
 
Web service
Web serviceWeb service
Web service
 
Web service introduction 2
Web service introduction 2Web service introduction 2
Web service introduction 2
 
Jax ws
Jax wsJax ws
Jax ws
 
Web Services - WSDL
Web Services - WSDLWeb Services - WSDL
Web Services - WSDL
 
SOAP, WSDL and UDDI
SOAP, WSDL and UDDISOAP, WSDL and UDDI
SOAP, WSDL and UDDI
 
WSDL 2.0 and Apache Woden
WSDL 2.0 and Apache WodenWSDL 2.0 and Apache Woden
WSDL 2.0 and Apache Woden
 
WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIWebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDI
 
SOAP, UDDI, WSDL. XML definitions
SOAP, UDDI, WSDL. XML definitions SOAP, UDDI, WSDL. XML definitions
SOAP, UDDI, WSDL. XML definitions
 
Soap web service
Soap web serviceSoap web service
Soap web service
 
Web services
Web servicesWeb services
Web services
 
Web Services
Web ServicesWeb Services
Web Services
 
SOAP--Simple Object Access Protocol
SOAP--Simple Object Access ProtocolSOAP--Simple Object Access Protocol
SOAP--Simple Object Access Protocol
 
Web service Introduction
Web service IntroductionWeb service Introduction
Web service Introduction
 
Intro to web services
Intro to web servicesIntro to web services
Intro to web services
 
Interoperable Web Services with JAX-WS
Interoperable Web Services with JAX-WSInteroperable Web Services with JAX-WS
Interoperable Web Services with JAX-WS
 
Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)
 

Andere mochten auch

XML, DTD & XSD Overview
XML, DTD & XSD OverviewXML, DTD & XSD Overview
XML, DTD & XSD OverviewPradeep Rapolu
 
Scalable JavaScript Application Architecture
Scalable JavaScript Application ArchitectureScalable JavaScript Application Architecture
Scalable JavaScript Application ArchitectureNicholas Zakas
 
Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]
Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]
Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]Shreeraj Shah
 
Writing simple web services in java using eclipse editor
Writing simple web services in java using eclipse editorWriting simple web services in java using eclipse editor
Writing simple web services in java using eclipse editorSantosh Kumar Kar
 
Restful Web Services
Restful Web ServicesRestful Web Services
Restful Web ServicesAngelin R
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentationguest0df6b0
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP TutorialLorna Mitchell
 
Testing web services
Testing web servicesTesting web services
Testing web servicesTaras Lytvyn
 
Java Web Service - Summer 2004
Java Web Service - Summer 2004Java Web Service - Summer 2004
Java Web Service - Summer 2004Danny Teng
 
Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108nit Allahabad
 
Simple API for XML
Simple API for XMLSimple API for XML
Simple API for XMLguest2556de
 
Java Web Services [5/5]: REST and JAX-RS
Java Web Services [5/5]: REST and JAX-RSJava Web Services [5/5]: REST and JAX-RS
Java Web Services [5/5]: REST and JAX-RSIMC Institute
 
Xml Java
Xml JavaXml Java
Xml Javacbee48
 

Andere mochten auch (20)

Java Web Services
Java Web ServicesJava Web Services
Java Web Services
 
XML, DTD & XSD Overview
XML, DTD & XSD OverviewXML, DTD & XSD Overview
XML, DTD & XSD Overview
 
Scalable JavaScript Application Architecture
Scalable JavaScript Application ArchitectureScalable JavaScript Application Architecture
Scalable JavaScript Application Architecture
 
Javascript Best Practices
Javascript Best PracticesJavascript Best Practices
Javascript Best Practices
 
Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]
Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]
Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]
 
Writing simple web services in java using eclipse editor
Writing simple web services in java using eclipse editorWriting simple web services in java using eclipse editor
Writing simple web services in java using eclipse editor
 
Restful Web Services
Restful Web ServicesRestful Web Services
Restful Web Services
 
Web Services Tutorial
Web Services TutorialWeb Services Tutorial
Web Services Tutorial
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentation
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP Tutorial
 
Testing web services
Testing web servicesTesting web services
Testing web services
 
Spring database - part2
Spring database -  part2Spring database -  part2
Spring database - part2
 
Springs
SpringsSprings
Springs
 
Java Web Service - Summer 2004
Java Web Service - Summer 2004Java Web Service - Summer 2004
Java Web Service - Summer 2004
 
JAXP
JAXPJAXP
JAXP
 
Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108Jaxp Xmltutorial 11 200108
Jaxp Xmltutorial 11 200108
 
Simple API for XML
Simple API for XMLSimple API for XML
Simple API for XML
 
Spring transaction part4
Spring transaction   part4Spring transaction   part4
Spring transaction part4
 
Java Web Services [5/5]: REST and JAX-RS
Java Web Services [5/5]: REST and JAX-RSJava Web Services [5/5]: REST and JAX-RS
Java Web Services [5/5]: REST and JAX-RS
 
Xml Java
Xml JavaXml Java
Xml Java
 

Ähnlich wie Java API XML Web Services Overview

Soa 12 jax ws-xml Java API for web services
Soa 12 jax ws-xml Java API for web servicesSoa 12 jax ws-xml Java API for web services
Soa 12 jax ws-xml Java API for web servicesVaibhav Khanna
 
Lecture 7 Web Services JAX-WS & JAX-RS
Lecture 7   Web Services JAX-WS & JAX-RSLecture 7   Web Services JAX-WS & JAX-RS
Lecture 7 Web Services JAX-WS & JAX-RSFahad Golra
 
Java Web services
Java Web servicesJava Web services
Java Web servicesSujit Kumar
 
Deawsj 7 ppt-2_a
Deawsj 7 ppt-2_aDeawsj 7 ppt-2_a
Deawsj 7 ppt-2_aNiit Care
 
Advance Java Topics (J2EE)
Advance Java Topics (J2EE)Advance Java Topics (J2EE)
Advance Java Topics (J2EE)slire
 
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL RoutingBIOVIA
 
Web service through cxf
Web service through cxfWeb service through cxf
Web service through cxfRoger Xia
 
Intro To Web and Web Services (REST Series 01)
Intro To Web and Web Services (REST Series 01)Intro To Web and Web Services (REST Series 01)
Intro To Web and Web Services (REST Series 01)Heartin Jacob
 
Java Web services
Java Web servicesJava Web services
Java Web servicesvpulec
 
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...Juarez Junior
 
What's New and Noteworthy on Oracle CAF 12.1.3
What's New and Noteworthy on Oracle CAF 12.1.3What's New and Noteworthy on Oracle CAF 12.1.3
What's New and Noteworthy on Oracle CAF 12.1.3Bruno Borges
 
Java New Evolution
Java New EvolutionJava New Evolution
Java New EvolutionAllan Huang
 
WSO2 Intro Webinar - Scale your business with the cloud enabled WSO2 Applica...
WSO2 Intro Webinar -  Scale your business with the cloud enabled WSO2 Applica...WSO2 Intro Webinar -  Scale your business with the cloud enabled WSO2 Applica...
WSO2 Intro Webinar - Scale your business with the cloud enabled WSO2 Applica...WSO2
 

Ähnlich wie Java API XML Web Services Overview (20)

Soa 12 jax ws-xml Java API for web services
Soa 12 jax ws-xml Java API for web servicesSoa 12 jax ws-xml Java API for web services
Soa 12 jax ws-xml Java API for web services
 
Lecture 7 Web Services JAX-WS & JAX-RS
Lecture 7   Web Services JAX-WS & JAX-RSLecture 7   Web Services JAX-WS & JAX-RS
Lecture 7 Web Services JAX-WS & JAX-RS
 
Java Web services
Java Web servicesJava Web services
Java Web services
 
Deawsj 7 ppt-2_a
Deawsj 7 ppt-2_aDeawsj 7 ppt-2_a
Deawsj 7 ppt-2_a
 
Enterprise service bus part 2
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2
 
15376199.ppt
15376199.ppt15376199.ppt
15376199.ppt
 
Advance Java Topics (J2EE)
Advance Java Topics (J2EE)Advance Java Topics (J2EE)
Advance Java Topics (J2EE)
 
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
 
Web service through cxf
Web service through cxfWeb service through cxf
Web service through cxf
 
Ntg web services
Ntg   web servicesNtg   web services
Ntg web services
 
Intro To Web and Web Services (REST Series 01)
Intro To Web and Web Services (REST Series 01)Intro To Web and Web Services (REST Series 01)
Intro To Web and Web Services (REST Series 01)
 
Riding with camel
Riding with camelRiding with camel
Riding with camel
 
Web services soap rest training
Web services soap rest trainingWeb services soap rest training
Web services soap rest training
 
Java Web services
Java Web servicesJava Web services
Java Web services
 
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
 
What's New and Noteworthy on Oracle CAF 12.1.3
What's New and Noteworthy on Oracle CAF 12.1.3What's New and Noteworthy on Oracle CAF 12.1.3
What's New and Noteworthy on Oracle CAF 12.1.3
 
Java New Evolution
Java New EvolutionJava New Evolution
Java New Evolution
 
WSO2 Intro Webinar - Scale your business with the cloud enabled WSO2 Applica...
WSO2 Intro Webinar -  Scale your business with the cloud enabled WSO2 Applica...WSO2 Intro Webinar -  Scale your business with the cloud enabled WSO2 Applica...
WSO2 Intro Webinar - Scale your business with the cloud enabled WSO2 Applica...
 
Oracle application container cloud back end integration using node final
Oracle application container cloud back end integration using node finalOracle application container cloud back end integration using node final
Oracle application container cloud back end integration using node final
 
Oracle API Gateway
Oracle API GatewayOracle API Gateway
Oracle API Gateway
 

Mehr von IMC Institute

นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14IMC Institute
 
Digital trends Vol 4 No. 13 Sep-Dec 2019
Digital trends Vol 4 No. 13  Sep-Dec 2019Digital trends Vol 4 No. 13  Sep-Dec 2019
Digital trends Vol 4 No. 13 Sep-Dec 2019IMC Institute
 
บทความ The evolution of AI
บทความ The evolution of AIบทความ The evolution of AI
บทความ The evolution of AIIMC Institute
 
IT Trends eMagazine Vol 4. No.12
IT Trends eMagazine  Vol 4. No.12IT Trends eMagazine  Vol 4. No.12
IT Trends eMagazine Vol 4. No.12IMC Institute
 
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformationเพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital TransformationIMC Institute
 
IT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIMC Institute
 
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมมูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมIMC Institute
 
IT Trends eMagazine Vol 4. No.11
IT Trends eMagazine  Vol 4. No.11IT Trends eMagazine  Vol 4. No.11
IT Trends eMagazine Vol 4. No.11IMC Institute
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationIMC Institute
 
บทความ The New Silicon Valley
บทความ The New Silicon Valleyบทความ The New Silicon Valley
บทความ The New Silicon ValleyIMC Institute
 
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10IMC Institute
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationIMC Institute
 
The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)IMC Institute
 
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง IMC Institute
 
IT Trends eMagazine Vol 3. No.9
IT Trends eMagazine  Vol 3. No.9 IT Trends eMagazine  Vol 3. No.9
IT Trends eMagazine Vol 3. No.9 IMC Institute
 
Thailand software & software market survey 2016
Thailand software & software market survey 2016Thailand software & software market survey 2016
Thailand software & software market survey 2016IMC Institute
 
Developing Business Blockchain Applications on Hyperledger
Developing Business  Blockchain Applications on Hyperledger Developing Business  Blockchain Applications on Hyperledger
Developing Business Blockchain Applications on Hyperledger IMC Institute
 
Digital transformation @thanachart.org
Digital transformation @thanachart.orgDigital transformation @thanachart.org
Digital transformation @thanachart.orgIMC Institute
 
บทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgบทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgIMC Institute
 
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformationกลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital TransformationIMC Institute
 

Mehr von IMC Institute (20)

นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14
 
Digital trends Vol 4 No. 13 Sep-Dec 2019
Digital trends Vol 4 No. 13  Sep-Dec 2019Digital trends Vol 4 No. 13  Sep-Dec 2019
Digital trends Vol 4 No. 13 Sep-Dec 2019
 
บทความ The evolution of AI
บทความ The evolution of AIบทความ The evolution of AI
บทความ The evolution of AI
 
IT Trends eMagazine Vol 4. No.12
IT Trends eMagazine  Vol 4. No.12IT Trends eMagazine  Vol 4. No.12
IT Trends eMagazine Vol 4. No.12
 
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformationเพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
 
IT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to Work
 
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมมูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
 
IT Trends eMagazine Vol 4. No.11
IT Trends eMagazine  Vol 4. No.11IT Trends eMagazine  Vol 4. No.11
IT Trends eMagazine Vol 4. No.11
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
 
บทความ The New Silicon Valley
บทความ The New Silicon Valleyบทความ The New Silicon Valley
บทความ The New Silicon Valley
 
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
 
The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)
 
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
 
IT Trends eMagazine Vol 3. No.9
IT Trends eMagazine  Vol 3. No.9 IT Trends eMagazine  Vol 3. No.9
IT Trends eMagazine Vol 3. No.9
 
Thailand software & software market survey 2016
Thailand software & software market survey 2016Thailand software & software market survey 2016
Thailand software & software market survey 2016
 
Developing Business Blockchain Applications on Hyperledger
Developing Business  Blockchain Applications on Hyperledger Developing Business  Blockchain Applications on Hyperledger
Developing Business Blockchain Applications on Hyperledger
 
Digital transformation @thanachart.org
Digital transformation @thanachart.orgDigital transformation @thanachart.org
Digital transformation @thanachart.org
 
บทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgบทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.org
 
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformationกลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
 

Kürzlich hochgeladen

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 

Kürzlich hochgeladen (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 

Java API XML Web Services Overview

  • 1. Topic 4 Java API for XML Web Services Assoc.Prof. Dr. Thanachart Numnonda www.imcinstitute.com August 2010
  • 2. Agenda  Java APIs for Web Services  JAX-RPC  JAX-WS 2
  • 3. Java APIs for Web Services 3
  • 4. JWSDP  Java Web Services Development Pack (JWSDP) is a free software development kit (SDK) for developing Web Services  JWSDP has been replaced by GlassFish and WSIT and several components are in Java SE 6.  JWSDP APIs  Java API for XML Processing (JAXP), v 1.3  Java Architecture for XML Binding (JAXB), v 1.0 and 2.0  JAX-RPC v 1.1  JAX-WS v 2.0  SAAJ (SOAP with Attachments API for Java)  Java API for XML Registries (JAXR) 4
  • 5. Java API for XML Processing (JAXP) • JAXP enables applications to parse, validate and transform XML documents. • Java developers can invoke • SAX parser • DOM parser • The main JAXP APIs are defined in the javax.xml.parsers package • SAXParserFactory • DocumentBuilderFactory 5
  • 6. Java API for XML Binding (JAXB) • JAXB allows Java developers to access and process XML data without having to know XML or XML processing. • JAXB is a Java technology that enables you to generate Java classes from XML schemas by means of a JAXB binding compiler. • unmarshalling • XML instance documents into Java content trees • marshalling • Java content trees back into XML instance documents. 6
  • 7. SAAJ (SOAP with Attachments API for Java™) • SAAJ provides a convenient API for constructing and sending SOAP messages without having to directly create the XML yourself. • SAAJ was originally part of the Java API for XML Messaging (JAXM) Separated out from JAXM 1.0 into JAXM 1.1 and SAAJ 1.1 (SAAJ 1.3 (Java EE 5)) 7
  • 8. JAXR • Standard Java API for performing registry operations over diverse set of registries Web service publication & discovery • A unified information model for describing business registry content • Provides multi-layered API abstractions Level 0: for UDDI Level 1: for ebXML registry/repository 8
  • 9. JAX-RPC • XML data types to/from Java types mapping • SOAP Message Handler framework • WSDL to/from Java mapping • Servlet-based Web service endpoint model • JAX-RPC Client Programming Models • Extensible type mapping 9
  • 10. JAX-WS (JAX-RPC 2.0) • New handler framework • Metadata-based Web services • Operational style improvement • Asynchronous Web services • Support for non-HTTP transport • Interoperable attachments (as part of WS-I) • Secure Web services (as part of Security) 10
  • 11. JAXM • JAXM is not part of Java EE 5 • JAXM-based asynchronous messaging on Java EE 5 is supported via Message-driven Bean (MDB) in EJB 3 can receive both JMS and JAXM message types Connector 1.5 allows pluggability of various types message providers (JAXM provider and JMS provider) 11
  • 12. Java APIs for Web Services Protocols  SOAP  JAXM 1.0 (JSR 67), SAAJ  JAX-RPC => JAX-WS 2.0 (JSR 224)  WSDL  JAX-RPC => JAX-WS 2.0 (JSR 224)  UDDI  JAXR 1.0 (JSR 93) 12
  • 14. JAX-RPC 14
  • 15. Remote Procedure Call (RPC) Request Response Client System Server System  RPC, COM, CORBA, RMI:  Synchronous communication: calling process blocks until there is a response  More tightly coupled (than non-RPC model): client must find recipients and know method and its arguments  Non persistent
  • 16. Remote Procedure Calls Client Interface Interface Servant Stub Skeleton Run Time Protocol Run Time  Common Interface between client and Server  Stub for client, Skeleton/Tie for server  On-the-wire protocol needs to be agreed upon
  • 17. RPC Example – Java RMI <<Interface>> Java Remote Interface rmic compiler Client Remote Object Implementation RMI Client RMI Server Stub Skeleton Java Remote Method Protocol (JRMP) is On-the-wire protocol
  • 18. RPC Example - JAX-RPC
  • 19. Common Interface  Service is described in IDL (Interface Description Language)  IDL ofCORBA service  Java RMI interface in RMI (Language specific)  WSDL for Web service  Used by tools to statically or dynamically generate and/or configure interfaces, proxies, and ties in a network technology specific environment
  • 20. What is JAX-RPC?  Java™ API for XML-based RPC  Web Services operations are performed by exchanging SOAP 1.1 messages  Services are described using WSDL • WSDL is the contract between service provider and client (only contract needed)  Web service endpoints and clients use JAX-RPC programming model  Key technology for Web Services in the J2EE 1.4 platform
  • 21. JAX-RPC Design Goals  Easy to use programming model • For both defining & using a service  Hides all the plumbing • You don't have to create SOAP messages yourself  SOAP and WSDL-based interoperability • Interoperate with any SOAP 1.1 compliant peers  Extensibility and Modularity • Support new versions of XML specification, i.e. SOAP 1.2 and beyond • Message handler architecture
  • 22. JAX-RPC Architecture JAX-RPC JAX-RPC Client WSDL Document Service Endpoint Generated JavaWSDL WSDLJava Code Container Container Client-side JAX-RPC Server-side JAX-RPC Runtime System Runtime System SOAP HTTP
  • 23. JAX-RPC Runtime System  Core of a JAX-RPC implementation: • Library that provides runtime services for JAX-RPC mechanisms • Implements some of the JAX-RPC APIs  Client side: • Can be implemented over J2SE™, J2EE™ or J2ME™ platforms  Server-side: • J2EE 1.3 or 1.4 Containers: EJB™ or Servlet
  • 24. Developing a Web Service Interfaces (java.rmi.Remote type) Must follow JAX-RPC conventions Implementation classes Servlet-based endpoint model Optional handler and serializer classes tool WSDL Service contract Packaged application (war file)
  • 25. JAX-RPC : Web Service Endpoint JAX-RPC Service Endpoint WSDL<-->Java WSDL Document Container Server-Side JAX-RPC Runtime System SOAP HTTP
  • 26. JAX-WS 26
  • 27. Quick overview of JAX-WS  Easy way to use Java API for XML Web Services  Replace JAX-RPC  Just add @annotation to POJO  XML Descriptor free programming  Layer architecture  SOAP 1.2 (Document/Literal)  Use JAXB for data binding  Protocol and transport independence  Part of Java SE6 and Java EE 5 Platform 27
  • 29. What Does It Mean? • Upper layer uses annotations extensively • Easy to use • Great toolability • Fewer generated classes • Lower layer is more traditional • API-based • For advanced scenarios • Most application will use the upper layer only • Either way, portability is guaranteed 29
  • 30. Two ways to create a Web Service • Starting from a WSDL file > Generate classes using wsimport (=> xjc) > WS interface > WS implementation skeleton class > Implement WS interface > Build and deploy • Starting from a Java class (POJO) > Annotate POJO > Build and deploy > WSDL file generated automatically 30
  • 31. Start with a Java Class 31
  • 32. Server-Side Programming Model: POJO 1 Write a POJO implementing the service 2 Add @WebService annotation to it 3 Build and Deploy the application WSDL is automatically generated at runtime 1 Point your clients at the WSDL e.g. http://myserver/myapp/MyService?WSDL 32
  • 33. Example 1: Servlet-Based Endpoint @WebService public class Calculator { public int add( int a, int b) { return a + b; } } • @WebService annotation • All public methods become web service operations • WSDL/Schema generated automatically • Default values are used 33
  • 34. Service Description Default Mapping • Java mapping => WSDL 34
  • 35. Example 2: EJB-Based Endpoint @WebService @Stateless public class Calculator { public int add( int a, int b) { return a + b; } } • It’s a regular EJB 3.0 component, so it can use any EJB features > Transactions, security, interceptors... 35
  • 36. Customizing through Annotations @WebService(name=”CreditRatingService”, targetNamespace=”http://example.org”) public class CreditRating { @WebMethod(operationName=”getCreditScore”) public Score getCredit( @WebParam(name=”customer”) Customer c) { // ... implementation code ... } } 36
  • 37. Start with a WSDL file 37
  • 38. Generating an interface from WSDL • WSDL => Java generation 38
  • 39. Implementing a Web Service from a Generated Interface 39
  • 40. Server Side Web Service 40
  • 41. JAX-WS uses JAXB for Data Binding 41
  • 42. add() Parameter : Example 42
  • 43. JAXB XML Schema to Java Mapping 43
  • 45. Java SE Client Side Programming • Point a tool (NetBeans or wsimport) at the WSDL for the service wsimport http://example.org/Calculator.wsdl • Generate annotated classes and interfaces • Call new on the service class • Get a proxy using a get<ServiceName>Port method • Invoke any remote operations 45
  • 46. Example : Java SE-Based Client CalculatorService svc = new CalculatorService(); Calculator proxy = svc.getCalculatorPort(); int answer = proxy.add(35, 7); • No need to use factories • The code is fully portable • XML is completely hidden from programmer 46
  • 47. Java EE Client Side Programming • Point a tool (NetBeans or wsimport) at the WSDL for the service wsimport http://example.org/calculator.wsdl • Generate annotated classes and interfaces • Inject a @WebServiceReference of the appropriate type • No JNDI needed • Invoke any remote operations 47
  • 48. Example : Java EE-Based Client @Stateless public class MyBean { // Resource injection @WebServiceRef(CalculatorService.class) Calculator proxy; public int mymethod() { return proxy.add(35, 7); } 48
  • 50. Annotations Used in JAX-WS • JSR 181: Web Services Metadata for the Java Platform • JSR 222: Java Architecture for XML Binding (JAXB) • JSR 224: Java API for XML Web Services (JAX-WS) • JSR 250: Common Annotations for the Java Platform
  • 51. @WebService • Marks a Java class as implementing a Web Service, or a Java interface as defining a Web Service interface. • Attributes > endpointInterface > name > portName > serviceName > targetNamespace > wsdlLocation
  • 52. @WebMethod • Customizes a method that is exposed as a Web Service operation • The method is not required to throw java.rmi.RemoteException. • Attributes > action > exclude > operationName
  • 53. @WebParam • Customizes the mapping of an individual parameter to a Web Service message part and XML element. • Attributes > header > mode > name > partName > targetNamespace
  • 54. @WebResult • Customizes the mapping of the return value to a WSDL part and XML element. • Attributes > header > name > partName > targetNamespace
  • 55. JAX-WS - Provider • Web Service endpoints may choose to work at the XML message level by implementing the Provider interface. • The endpoint accesses the message or message payload using this low-level, generic API • Implement one of the following > Provider<Source> > Provider<SOAPMessage> > Provider<DataSource>
  • 57. JAX-WS - Dispatch • Web service client applications may choose to work at the XML message level by using the Dispatch<T> APIs. • The javax.xml.ws.Dispatch<T> interface provides support for the dynamic invocation of service endpoint operations. • Similar to Provider on server side
  • 59. Resources  Some contents are borrowed from the presentation slides of Sang Shin, Java™ Technology Evangelist, Sun Microsystems, Inc.  Web Services and Java, Elsa Estevez, Tomasz Janowski and Gabriel Oteniya, UNU-IIST, Macau 59
  • 60. Thank you thananum@gmail.com www.facebook.com/imcinstitute www.imcinstitute.com 60