Programming WebLogic Web Services
|
|
The following sections provide information about using JMS transport to invoke a WebLogic Web Service:
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:
Warning: Non-WebLogic client applications, such as a .NET client, will not be able to invoke the Web Service using the JMS binding.
clientgen Ant task creates a Service implementation that contains two getPortXXX() methods, one for HTTP/S and one for JMS.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.
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.
When creating the JMS Server, or configuring an existing one, be sure that you specify the JMS Template you already created for the Temporary Template attribute.
For details about creating all these components, see JMS: Configuring.
See Invoking a Web Service Using JMS Transport for details about writing a Java client application that invokes your Web Service.
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:
jmsUri attribute to the <web-service> element that describes your Web Service and set the attribute to the following value:connection-factory-name/queue-name
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.
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.
WL_HOME/server/lib/wlclient.jarWL_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.
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.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" );
}
}
}
|
|
|