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