Download presentation
Presentation is loading. Please wait.
Published byLeo Hodge Modified over 9 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.