Skip navigation.

Programming WebLogic Web Services

  Previous Next vertical dots separating previous/next from contents/index/pdf Contents View as PDF   Get Adobe Reader

Using JMS Transport to Invoke a WebLogic Web Service

The following sections provide information about using JMS transport to invoke a WebLogic Web Service:

 


Overview of Using JMS Transport

By default, client applications use HTTP/S as the connection protocol when invoking a WebLogic Web Service. You can, however, configure a WebLogic Web Service so that client applications can also use JMS as the transport when invoking the Web Service.

When a WebLogic Web Service is configured to use JMS as the connection transport:

Note: You can configure any WebLogic Web Service to include a JMS binding in its WSDL. This feature is independent of JMS-implemented WebLogic Web Services.

 


Specifying JMS Transport for a WebLogic Web Service: Main Steps

In the following procedure, it is assumed that you are familiar with the servicegen Ant task and you want to update the Web Service to use JMS transport. For an example of using servicegen, see Creating a WebLogic Web Service: A Simple Example.

Some of the main steps include configuring JMS resources using the Administration Console.

  1. Invoke the Administration Console to in your browser, as described in Overview of Administering WebLogic Web Services.
  2. Use the Administration Console to create (if they do not already exist) and configure the following JMS components of WebLogic Server:
  3. For details about creating all these components, see JMS: Configuring.

  4. Update the web-services.xml file of your WebLogic Web Service to specify that the generated WSDL include a port that uses a JMS binding.
  5. See Updating the web-services.xml File to Specify JMS Transport.

  6. Redeploy the Web Service.

See Invoking a Web Service Using JMS Transport for details about writing a Java client application that invokes your Web Service.

 


Updating the web-services.xml File to Specify JMS Transport

The web-services.xml file is located in the WEB-INF directory of the Web application of the Web Services EAR file. See The Web Service EAR File Package for more information on locating the file.

To update the web-services.xml file to specify JMS transport, follow these steps:

  1. Open the file in your favorite editor.
  2. Add the jmsUri attribute to the <web-service> element that describes your Web Service and set the attribute to the following value:
  3. connection-factory-name/queue-name 

    where connection-factory-name and queue-name are the JNDI names of the JMS connection factory and JMS queues, respectively, that you previously created. For example:

    <web-service
    name="myJMSTransportWebService"
    jmsUri="JMSTransportFactory/JMSTransportQueue"
    ...>
    ...
    </web-service>

 


Invoking a Web Service Using JMS Transport

Invoking a WebLogic Web Service using the JMS transport is very similar to using HTTP/S, as described in Invoking Web Services from Client Applications and WebLogic Server, but with a few differences, as described in the following procedure.

  1. Re-run the clientgen Ant task.
  2. Because the WSDL of the Web Service has been updated to include an additional port with a JMS binding, the clientgen Ant task automatically creates new stubs that contains these JMS-specific getPortXXX() methods.

    For details, see Generating the Client JAR File by Running the clientgen Ant Task.

  3. Update the CLASSPATH of your client application to include the standard JMS client JAR files:
  4. WL_HOME/server/lib/wlclient.jar
    WL_HOME/server/lib/wljmsclient.jar

    where WL_HOME refers to the main WebLogic Server installation directory.

    For more information on JMS client JAR files, see Programming WebLogic JMS.

  5. Update your client application to use the new getPortXXX() method of the JAX-RPC Service class generated by the clientgen Ant task. The standard getPortXXX() method for HTTP/S is called getServiceNamePort(); the new method to use the JMS transport is called getServiceNamePortJMS(), where ServiceName refers to the name of your Web Service. These two gerPortXXX() methods correspond to the two port definitions in the generated WSDL of the Web Service, as described in Overview of Using JMS Transport.
  6. The following example of a simple client application shows how to invoke the postWorld operation of the MyService Web Service using both the HTTP/S transport (via the getMyservicePort() method) and the JMS transport (via the getMyServicePortJMS() method):

    package examples.jms.client;
    import java.io.IOException;
    public class Main{
      public static void main( String[] args ) throws Exception{
        MyService service = new MyService_Impl();
        { //using HTTP transport
    MyServicePort port = service.getMyServicePort();
    port.postWorld( "using HTTP" );
    }
        { //using JMS transport
    MyServicePort port = service.getMyServicePortJMS();
    port.postWorld( "using JMS" );
    }
    }
    }

 

Skip navigation bar  Back to Top Previous Next