Linking a WSIF service to a JMS-provided service
The JMS providers enable a WSIF service to be invoked through either SOAP over JMS, or native JMS. Add Web Services Description Language (WSDL) extensions to the web service WSDL file so that the service can use the JMS providers.
The Java Message Service (JMS) is an API for transport technology. The mapping to a JMS destination is defined during deployment and maintained by the container.
The JMS destination endpoint for a web service can be realized in any of the following ways:
- The JMS destination for the queue can be the web service implementation.
- The JMS destination can be (but is not required to be) associated with a message-driven bean by the EJB container, thereby allowing the message-driven bean to be the web service implementation.
- For SOAP over JMS, the JMS destination can unwrap the JMS message and route the SOAP message to a web service implemented as a stateless session bean.
The JMS destination endpoint must respect the interaction model expected by the client and defined by the WSDL. It must return a response if one is required.
When the JMS destination endpoint creates the JMS response message the following rules must be followed:
- The response message must be sent to JMSReplyTo from the incoming request.
- The JMSCorrelationID value of the response message must be set to the JMSMessageID value from the request message.
- The response must be sent with a deliveryMode value equal to the JMSDeliveryMode value of the request message.
- The response must be sent with a priority value equal to the JMSPriority value of the request message.
- The TimeToLive/JMSExpiration value must be set to a value that equals the JMSExpiration value of the request message.
The client does not see any of these headers. The container receives the JMS message and (for SOAP over JMS) removes the SOAP message to send to the client.
To link a WSIF service to a JMS-provided service, use the following information and code examples:
Tasks
- Link the WSIF service to a SOAP over JMS service.
- Link a WSIF service to a service provided at a JMS destination.
- Enable a WSIF client to invoke a web service through JMS.
Subtopics
- Writing the WSDL extension that lets the WSIF service access a SOAP over JMS service
We can write a WSDL extension that enables your Web Services Invocation Framework (WSIF) service to access a SOAP service that uses the Java Message Service (JMS) as its transport mechanism.- Writing the WSDL extensions that let the WSIF service access a service at a JMS destination
Using the native Java Message Service (JMS) provider, Web Services Invocation Framework (WSIF) clients can treat a service available at a JMS destination as a Web service. Use this information, and associated code fragments, to help you to write the WSDL extensions.- Enable a WSIF client to invoke a web service through JMS
The ways in which the Web Services Invocation Framework (WSIF) interacts with the Java Message Service (JMS), and the steps to take to enable a service to be invoked through JMS by a WSIF client application.- JMS message header: The TimeToLive property reference
The range of permitted values for the TimeToLive property of a JMS message that WSIF puts onto a queue.
Linking a WSIF service to a SOAP over HTTP service Writing the WSDL extension that lets the WSIF service invoke a method on a local Java object Writing the WSDL extension that lets the WSIF service invoke an enterprise bean