The JMS providers enable a WSIF service to be invoked through JMS.
Why and when to perform this task
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 that
is 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.