Presentation is loading. Please wait.

Presentation is loading. Please wait.

Webservices using JAXB and JAX-WS Lalit Bhatt SpiderLogic

Similar presentations


Presentation on theme: "Webservices using JAXB and JAX-WS Lalit Bhatt SpiderLogic"— Presentation transcript:

1 Webservices using JAXB and JAX-WS Lalit Bhatt SpiderLogic http://www.spiderlogic.com

2 JAXB JAX-WS © www.spiderlogic.com

3  Provides binding between XML and Java  To provide a higher level of abstraction to work with.  Associates a set of Java classes with XML.  Think of Java class as representing the XML instances.  Reference site: https://jaxb.dev.java.nethttps://jaxb.dev.java.net © www.spiderlogic.com

4 XML schema JAXB Compiler Schema derived Classes and interface XML schema JAXB Schema generator Java classes

5 © www.spiderlogic.com XML document JAXB API Java objects representing XML content unmarshel marshel

6 Demo © www.spiderlogic.com

7  Advantages  Ease of Use.  Object oriented way of doing things.  Disadvantages  Abstraction has a cost © www.spiderlogic.com

8  Understanding how JAX-WS can be used to implement SOAP based web services both at server and client side. © www.spiderlogic.com

9 Dave Podnar's Five Stages of Dealing with Web Services  Denial - It's Simple Object Access Protocol, right?  Over Involvement - OK, I'll read the SOAP, WSDL, WS-I BP, JAX-RPC, SAAJ, JAX-P... specs. next, I'll check the Wiki and finally follow an example showing service and client sides.  Anger - I can't believe those #$%&*@s made it so difficult!  Guilt - Everyone is using Web Services, it must be me, I must be missing something.  Acceptance - It is what it is, Web Services aren't simple or easy © www.spiderlogic.com

10 Web service is about SOAP, WSDL and UDDI – Web service is higher level concept than this. SOAP, WSDL and UDDI are actually implementation details. Web services are based on RPC paradigm – Web services are document driven also. Web services are based on HTTP – Web services can work on many other protocols like SMTP. Web services can cure cancer © www.spiderlogic.com

11 XML XSD XSLT Xpath JAXP SAX DOM JAXB StaX SOAP WSDL UDDI Rest JAX-RPC JAX-WS JAX-RS SAAJ WS* BP Axis Metro ESB SOA © www.spiderlogic.com

12 Client Web service details – WSDL on XML Request - SOAP on XML Reposnse – SOAP on XML Invoked initially Invoked whenever message exchange happens Server

13  Plain old Java Object (POJO) can be easily exposed as web service.  Annotation driven  Data binding through JAXB  Server Independent © www.spiderlogic.com

14  Write the class  Annotate  Register in web.xml  Deploy – The server runtime will  Generate and publish WSDL.  Map SOAP request to a Java method invocation.  Translate method return into a SOAP response © www.spiderlogic.com

15 @WebService public class TemperatureConverter { @WebMethod public double celsiusToFarenheit(double temp){... } @WebMethod public double farenheitToCelsius(double temp){... } } © www.spiderlogic.com

16 tempConv com.lalit.TemperatureConverter tempConv /tempConv © www.spiderlogic.com

17 ` CLIENTtCLIENTt 1. Get WSDL WSDL Published On Server Endpoint Listener Dispatcher Handler Chain SOAP Fault Processing JAXB Mapping Web Service Java endpoint 2. SOAP request 3465 1098711. SOAP resp

18  Annotate  Deploy ejb jar © www.spiderlogic.com

19 @Stateless @WebService public class TemperatureConverter { //Rest code remains same. © www.spiderlogic.com

20  Starting Java 6  Generate the artifact using wsgen tool.  wsgen tool generates JAXB mapped classes  Use embedded HttpServer to deploy the webservice © www.spiderlogic.com

21 public static void main(String[] args) { TemperatureConverter tc= new TemperatureConverter(); //Java comes with an embedded Http server //which is used to host the service Endpoint endpoint = Endpoint.publish ("http://localhost:8080/tempConv", tc); //Keeping commented, keeps the server running /*endpoint.stop();*/ } © www.spiderlogic.com

22  Generate artifact using wsimport pointing to WSDL  wsimport generates JAXB binding classes and service endpoint  Call the web service using service end point © www.spiderlogic.com

23 //Make the instance of service class TemperatureConverterService service = new TemperatureConverterService(); //Get port to invoke webservice TemperatureConverter port = service.getPort (TemperatureConverter.class); //Call the web service. double fahr = port.celsiusToFarenheit(100); © www.spiderlogic.com

24  JAX-WS supports start from WSDL approach @WebService (name = "TemperatureConvertor", endpointInterface= "com.lalit.ws.TemperatureConvertor", targetNamespace = "http://ws.crayom.com/", wsdlLocation = "WEB-INF/TemperatureConvertorDocStyle.wsdl") public class TemperatureConvertorService implements TemperatureConvertor { © www.spiderlogic.com

25  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  Provider. © www.spiderlogic.com

26 @WebServiceProvider ( serviceName = "TempConvProvider", portName="TempConvPort", targetNamespace = "http://www.crayom.com/om", wsdlLocation= "WEB-INF/wsdl/TempConvProvider.wsdl") @ServiceMode(value=Service.Mode.PAYLOAD) public class TempConvProvider implements Provider { public Source invoke(Source request) { … return resp; } } © www.spiderlogic.com PAYLOAD gives the body of message. MESSAGE will give whole SOAP Message

27  Web service client applications may choose to work at the XML message level by using the Dispatch APIs.  The javax.xml.ws.Dispatch interface provides support for the dynamic invocation of service endpoint operations.  Similar to Provider on server side © www.spiderlogic.com

28 Service service = Service.create(url, serviceName); Dispatch sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD); //request is a XML which is put into SOAP payload StreamSource streamSource = new StreamSource (new StringReader(request)); Source result = sourceDispatch.invoke(streamSource); © www.spiderlogic.com

29  JAX-WS provides support for SOAP fault handling in terms of exceptions.  JAX-WS supports handlers both on client and server side, which can process SOAP headers. SOAP headers are used to build Quality of services (QOS).  JAX-WS supports asynchronous communication © www.spiderlogic.com

30 Thanks Lalit Bhatt (http://www.lalitbhatt.com)http://www.lalitbhatt.com SpiderLogic (http://www.spiderlogic.com )http://www.spiderlogic.com


Download ppt "Webservices using JAXB and JAX-WS Lalit Bhatt SpiderLogic"

Similar presentations


Ads by Google