Developing JAX-RPC web services clients
You can develop web services clients based on the Web Services for Java™ Platform, Enterprise Edition (Java EE) specification and the Java API for XML-based RPC (JAX-RPC) programming model.
Before you begin
About this task
- Developing web services clients based on the JAX-RPC programming model
-
The web services client programming model provides the guidelines for accessing web services in a Java EE environment. You can develop web services clients based on the Web Services for Java Platform, Enterprise Edition (Java EE) specification and the Java API for XML-based remote procedure call (JAX-RPC) specification. The application server supports Enterprise JavaBeans (EJB) clients, Java EE application clients, JavaServer Pages (JSP) files and servlets that are based on the JAX-RPC programming model.
- Managed and unmanaged JAX-RPC web services clients
-
The application server supports both managed and unmanaged web services clients when using the JAX-RPC programming model:
- Managed clients
Web services for Java EE clients are defined by Java Specification Requirements (JSR) 109 and are managed clients because they run in a Java EE container. These clients are packaged as enterprise archive (EAR) files and contain components that act as service requesters. These components are comprised of a Java EE client application, a web component such as a servlet or JavaServer Pages (JSP), or a session Enterprise JavaBeans (EJB). Web services managed clients use JSR 109 APIs and deployment information to look up and invoke a web service.
For the managed clients, the service look up is through Java Naming and Directory Interface (JNDI) lookup. Read about setting up UserName token Web Services Security, digital signature Web Services Security and Lightweight Third-Party Authentication (LTPA) token Web Services Security. The following code is an example of a context lookup that is JSR 109 compliant:
InitialContext ctx = new InitialContext(); FredsBankServiceLocator locator =(FredsBankService)ctx.lookup("java:comp/env/service/FredsBankService"); FredsBank fb = locator.getFredsBank(url); long balance = fb.getBalance();
When you are instantiating a context lookup for a managed client, do not use
new()
method for the service locator. Here is an example that is not JSR 109 compliant (new ServiceLocator):Properties prop = new Properties(); InitialContext ctx = new InitialContext(prop); FredsBankServiceLocator locator = new FredsBankServiceLocator(); FredsBank fb = locator.getFredsBank(url); long balance = fb.getBalance();
Without the
lookup()
call, the client has no access to the deployment descriptor. For JAX-RPC web services, the Web Services Security configuration is in the web services deployment descriptor. - Unmanaged clients
Java Platform, Standard Edition (Java SE 6) clients that use the JAX-RPC runtime environment to invoke web services and do not run in any Java EE container are known as unmanaged clients. A web services unmanaged client is a stand-alone Java client that can directly inspect a WSDL file and formulate the calls to the web service by using the JAX-RPC APIs directly. These clients are packaged as JAR files which do not contain any deployment information.
For a Java application to act as a web service client, a mapping between the WSDL file and the Java application must exist. For JAX-RPC web services, the mapping is defined by the JAX-RPC specification. You can use a Java component to implement a web service by specifying the component interface and binding information in the WSDL file and designing the application server infrastructure to accept the service request. This entire process is based on the Web Services for Java EE specification. The JAX-RPC specification defines the mapping between a WSDL file, Java code, and XML Schema types.
- Managed clients
Procedure
Results
You have created and tested a web services client application.
What to do next
After you develop a web services application client, and the client is statically bound, the service endpoint used by the implementation is the one that is identified in the WSDL file that you used during the development process. During or after installation of the web services application, you might want to change the service endpoint. For managed clients, you can change the endpoint with the administrative console or the wsadmin scripting tool.
You can additionally consider customizing your web service by implementing extensions to your web services client. Some examples of these extensions include sending and receiving values in SOAP headers, sending and receiving HTTP or JMS transport headers, or using custom bindings. To learn more about these extensions, read about implementing extensions to web services clients.