JAX-RPC


 

+

Search Tips   |   Advanced Search

 

The JAX-RPC specification enables you to develop SOAP-based interoperable and portable Web services and Web service clients. JAX-RPC 1.1 provides core APIs for developing and deploying Web services on a Java platform and is a part of the Web Services for Java EE platform. The Java EE platform enables you to develop portable Web services.

WAS implements JAX-RPC 1.1 standards.

The JAX-RPC standard covers the model and bindings for using WSDL for Web services in the Java language. JAX-RPC simplifies development of Web services by shielding you from the underlying complexity of SOAP communication.

On the surface, JAX-RPC looks like another instantiation of RMI. Essentially, JAX-RPC enables clients to access a Web service as if the Web service was a local object mapped into the client's address space even though the Web service provider is located in another part of the world. The JAX-RPC is done by using the XML-based protocol SOAP, which typically rides on top of HTTP.

JAX-RPC defines the mappings between the WSDL port types and the Java interfaces, as well as between Java language and XML schema types.

A JAX-RPC Web service can be created from a Java Bean or a enterprise bean implementation. We can specify the remote procedures by defining remote methods in a Java interface.

You only need to code one or more classes that implement the methods. The remaining classes and other artifacts are generated by the Web service vendor's tools.

The following is an example of a Web service interface:

 package com.ibm.mybank.ejb;
 import java.rmi.RemoteException;
 import com.ibm.mybank.exception.InsufficientFundsException;
/**
    * Remote interface for Enterprise Bean: Transfer
*/
 public interface Transfer_SEI extends java.rmi.Remote 
{
    public void transferFunds(int fromAcctId, int toAcctId, float amount)
        throws java.rmi.RemoteException;
}

The interface definition in JAX-RPC must follow specific rules:

A client creates a stub and invokes methods on it. The stub acts like a proxy for the Web service. From the client code perspective, it seems like a local method invocation. However, each method invocation gets marshaled to the remote server. Marshaling includes encoding the method invocation in XML as prescribed by the SOAP protocol.

The following are key classes and interfaces needed to write Web services and Web service clients:

For a stub to access the Web service provider, most of the JAX-RPC API details are hidden from you. The client creates a ServiceFactory (java.xml.rpc.ServiceFactory). The client instantiates a Service (java.xml.rpc.Service) from the ServiceFactory. The service is a factory object that creates the port. The port is the remote service endpoint interface to the Web service. In the case of DII, the Service object is used to create Call objects, which we can configure to call methods on the Web service's port.

For a complete list of the supported standards and specifications, see the Web services specifications and API documentation.



Subtopics


RMI-IIOP using JAX-RPC

 

Related concepts


Web Services for Java EE specification

 

Related


Web services specifications and APIs