Presentation is loading. Please wait.

Presentation is loading. Please wait.

COP 4991 Component Based Software Development Lecture #4 Java Web Services Onyeka Ezenwoye.

Similar presentations


Presentation on theme: "COP 4991 Component Based Software Development Lecture #4 Java Web Services Onyeka Ezenwoye."— Presentation transcript:

1 COP 4991 Component Based Software Development Lecture #4 Java Web Services Onyeka Ezenwoye

2 Acknowledgement Tapas Banerjee Pankaj Kumar Sang Shin

3 AGENDA Java APIs for Web Services. Apache Axis Web Services deployment.

4 Web Services Programming APIs APIs for RPC-based Web Services: –JAX-RPC (Java API for XML-RPC) –Java API for XML-based RPC (JAX-RPC) sends SOAP method calls to remote parties over the Internet and receives the results APIs for Message-based Web Services: –JAXM (Java API for XML Messaging) –Java API for XML Messaging (JAXM) sends SOAP messages over the Internet in a standard way APIs for publishing and discovering Web Services: –JAXR (Java API for XML Registry) –Java API for XML Registries (JAXR) provides a standard way to access business registries and share information

5 JAXR Java API for XML Registry Enables Java programs to access XML registries. JAXR provider: –Accesses XML registry. JAXR client: –A client program that accesses an XML registry using JAXR API. –Perform queries and update UDDI registries.

6 JAX-RPC API for XML-based RPC Sends SOAP method calls to remote parties over the Internet and receives the results WSDL/XML to Java Mapping Java to WSDL/XML Mapping

7 JAX-RPC Physical Architecture Transport SOAP Server Side JAX-RPC Runtime System JAX-RPC API Client Side JAX-RPC Runtime System Stub Service Endpoint WSDL description WSDL Java Mapping Service Client Dispatch Container

8 AGENDA Java APIs for Web Services Apache Axis Web Services deployment

9 Apache Software Foundation Who is Apache –an open community of Java developers worldwide. Open Source –Lots of free software (just great!) Downside –Lack of support –Use at your own risk

10 Tools &APIs: Apache Axis Apache SOAP: First Open Source SOAP Implementation Axis next generation Apache SOAP, New Code base – lessons learned from Apache SOAP development Implements JAX-RPC (alternative to SUN’s JAX-RPC)

11 Axis Tools Support for WSDL Java2WSDL –for building WSDL from Java classes WSDL2Java –for building Java proxies and skeletons from WSDL documents

12 Runtime Environment Web Server –Apache Tomcat –Allows to access Java application provided via an HTTP server http://jakarta.apache.org/tomcat/ SOAP engine –Apache Axis http://ws.apache.org/axis/

13 Sending requests, getting results SOAP-awareServlet (e.g. Apache Axis) SOAP-awareServlet Any class processing the incoming requests (“business logic” Any class processing the incoming requests (“business logic” Any class processing the incoming requests (“business logic” Any class processing the incoming requests (“business logic” Any class processing the incoming requests (“business logic” Any class processing the incoming requests (“business logic” Any class processing the incoming requests (“business logic” Any class processing the incoming requests (“business logic” HTTP Server (e.g. Apache Tomcat) Servlet engine

14 Install & Deploy Apache Axis Make sure that you have –J2SE SDK. We will use 1.4 –A Servlet Container: We will use Tomcat 4.1 Download axis binaries from http://xml.apache.org/axis http://xml.apache.org/axis Unzip it and look at the dir. tree. Note that Axis runs as a Servlet. Direcotry Structure: axis-1_0 docslibwebappssamples axis WEB-INF lib classes web.xml ……

15 Apache Axis Installation –Copy webapps\axis, paste to tomcat\webapps\ –Run Tomcat: issue bin\startup from Tomcat home. –Installation Testing http://localhost:8080/axis/ Classpath set AXIS_HOME=C:\jakarta-tomcat-4.0.6\webapps\axis set AXIS_LIB=%AXIS_HOME%\WEB-INF\lib set AXIS_CP=.;%AXIS_CP%;%AXIS_LIB%\axis.jar; %AXIS_LIB%\commons-discovery.jar; %AXIS_LIB%\commons-logging.jar;%AXIS_LIB%\jaxrpc.jar; %AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar; %AXIS_LIB%\xml-apis.jar;%AXIS_LIB%\wsdl4j.jar set classpath=%AXIS_CP%

16 AGENDA Java APIs for Web Services Apache Axis Web Services deployment

17 Test the Deployment Point your browser to http://localhost:8080/axis http://localhost:8080/axis

18 Different web service creation paths From an existing application – bottom-up –Most common. We like to expose existing back-end systems for enterprise integration (EAI) purposes. From WSDL, generate a completely new application – top-down –The wizards can create skeleton code from WSDL, we then fill up the details Combine independent web services to provide new functionality.

19 Creating a Web Service in Java Typical steps: 1.Create the application 2.Generate WSDL document using some Web Service tool 3.Deploy Web Service to a Web Server 4.Generate client stubs from WSDL 5.Create client application Then publish, discover and use web service

20 Develop a service Step 1 – Write a Java Class public class AdderImpl implements Adder { public int add(int x, int y) throws RemoteException { return x + y; }

21 public interface Adder { int add (int x, int y); } public class AdderImpl implements Adder { public int add(int x, int y) throws RemoteException { return x + y; } Adder.java AdderImpl.java

22 Develop a service Step 2 - Deploy to the SOAP engine –Create the deployment descriptor (*.wsdd) <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

23 Develop a service Step 2 - Deploy to the SOAP engine –Copy the Java Class to the Web Server –Start the Web Server –Deploy java org.apache.axis.client.AdminClient *.wsdd

24 Develop a service Step 3 - Check –Check (List all services) http://localhost:8080/axis/servlet/AxisServlet

25 Consume a service Step 1 – Get the WSDL file of the service –Java2WSDL (usage example) java org.apache.axis.wsdl.Java2WSDL -o adder.wsdl -l http://localhost:8080/axis/services/adderService -n http://cop4991/adder adderImpl –We use this tool because the service is built by ourselves (we have the Java Class) output location namespace class name

26 Consume a service Step 2 – Generate the Client Stub –WSDL2Java (usage example) java org.apache.axis.wsdl.WSDL2Java myecho.wsdl –4 files will be generated AdderImpl.java AdderImplService.java AdderImplServiceLocator.java AdderServiceSoapBindingStub.java interface Service factory Service Binding stub

27 Consume a service Step 3 – Write the Client Program … // Make a service AdderImplService adderService = new AdderImplServiceLocator(); // Now use the service to get a stub AdderImpl adder = adderService.getadderService(); // Make the actual call int sum = adder.add(10,9); …

28 public class AdderClient{ public static void main(String[] args){ try{ //Make a service instance AdderImplService adderService = new AdderImplServiceLocator(); //Now use the service to get a stub AdderImpl adder = adderService.getadderService(); //Make the actual call int sum = adder.add(10,9); System.out.println("the sum is: "+sum); }catch(Exception e){e.printStackTrace();} } AdderClient.java

29 Static Stub Client Our client is static –Tightly bound to generated stub –Can only use one service Dynamic Clients –Use WSIF (Web Service Invocation Framework) instead

30 Resources Apache Tomcat –http://jakarta.apache.org/tomcat/http://jakarta.apache.org/tomcat/ Apache Axis Home –http://xml.apache.org/axishttp://xml.apache.org/axis XMethods –http://www.xmethods.nethttp://www.xmethods.net


Download ppt "COP 4991 Component Based Software Development Lecture #4 Java Web Services Onyeka Ezenwoye."

Similar presentations


Ads by Google