Configure a permanent replyTo queue for JAX-RPC Web services using SOAP over JMS
When using two-way Web service communications using SOAP over JMS, it can be beneficial to configure a permanent replyTo queue on a JAX-RPC Web services client to prevent the client from having to create a temporary reply queue each time a Web service request is made.
Overview
A permanent replyTo queue is configured on the Web service client in one of the following ways:
- Specify the optional replyToDestination property in the JMS endpoint URL.
- Set the replyTo queue programmatically on the client JAX-RPC Stub or Call object. Setting the replyTo queue as a Stub or a Call property affects all requests that are invoked using that Stub or Call object.
- Set the replyTo queue as a JVM System property. Setting the replyTo queue as a JVM System property affects all of your SOAP over JMS clients running in the particular JVM. If there are multiple clients in the same application that need to use a different replyTO queue, then the best option is to set the property programmatically.
To set the permanent replyTo queue using any of these options, only client-side configuration is necessary. There is no configuration necessary on the Web service provider side.
Procedure
- Specify the optional replyToDestination property in the JMS endpoint URL.
jms:/queue?destination=jms/MyRequestQueue&connectionFactory= jms/MyCF&replyToDestination=jms/MyReplyQueue&targetService=MyService
- Set the replyTo queue programmatically on the client JAX-RPC Stub or Call object.
The client uses the JAX-RPC Stub or Call object to invoke the Web service.
((javax.xml.rpc.Stub)stub)._setProperty(com.ibm.wsspi.webservices.Consta nts.JMS_REPLY_QUEUE_JNDI_NAME, "jms/Permanent_Q");The value of the property is a String.
- Set the replyTo queue as a JVM System property.
- For a Java client invocation, enter at a command prompt:
java -Dcom.ibm.websphere.webservices.JMSReplyQueueJndiName=jms/Permanent_Q
- For a WAS JVM:
Set a JVM system property using the console for the appserver which runs the Web service client application.
To set custom properties, connect to the console and navigate to the Java virtual machine custom properties panel.
Servers > Application Servers > server > Java and Process Management -> Process Definition -> Java Virtual Machine -> Custom Properties -> New
- Set the Name property to: com.ibm.websphere.webservices.JMSReplyQueueJndiName
- Set the Value property to: jms/Permanent_Q
- Click OK to save your changes.
- Click Synchronize changes with Nodes.
- Restart the appserver.
Results
Your Web services client can now receive SOAP/JMS messages to a permanent replyTo queue.
Use the JMS API to transport JAX-RPC Web services requests
Task overview: Implementing Web services applications
Java Virtual machine custom properties
Related information
Web services SOAP/JMS protocol