Set a permanent replyTo queue for JAX-RPC Web services using SOAP over JMS (deprecated)
When using two-way Web service communications using the IBM proprietary SOAP over JMS transport, we can benefit from configuring a permanent replyTo queue on 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.
Deprecated feature: In WAS 7.0, the IBM proprietary SOAP over JMS protocol is now deprecated in favor of the emerging industry standard protocol. Use the IBM proprietary SOAP over JMS protocol with your Java API for XML Web Services (JAX-WS) or JAX-RPC Web services, however, we are encouraged to take advantage of the SOAP over JMS protocol standard. This task describes configuring a permanent replyTo queue when using the IBM proprietary SOAP over JMS transport. To learn more about the SOAP over JMS standard, see the using SOAP over JMS to transport Web services documentation.depfeat A permanent replyTo queue is configured on the Web services 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 the 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.
- 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 JVM running on the appserver:
- Set a JVM system property using the admin console for the appserver which runs the Web service client application.
To set custom properties, connect to the admin console and navigate to the Java virtual machine custom properties panel.
- Click Servers > Server Types > WebSphere application servers > server_name> 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 the changes.
- Click Synchronize changes with Nodes and click Save.
- Restart the appserver.
Results
Your Web services client can now receive IBM proprietary SOAP over JMS messages from a permanent replyTo queue.
Related tasks
Use SOAP over Java Message Service to transport Web services
Task overview: Implement Web services applications
Java virtual machine custom properties 
Related information
IBM proprietary SOAP over JMS protocol (deprecated)
SOAP over JMS protocol
IBM proprietary JMS endpoint URL syntax (deprecated)