The Web services engine supports the use of a Java Message Service (JMS)-compliant messaging transport as an alternative to HTTP for communicating SOAP messages between clients and servers.
You can use SOAP/JMS if you need to provide implementations for the client or server components, and need to make sure that the implementations are interoperable with the client and server components provided by the Web services engine in WebSphere Application Server.
Client responsibilities The client component is responsible for sending SOAP request messages and receiving SOAP response messages while adhering to the following protocol constraints:
text/xml; charset="UTF-8"The contentType property in a SOAP request message that contains attachments must be set as follows:
multipart/related; type="text/xml"; start="<...content-id of first part...>"This example represents a multi-part message, where the first part is of type "text/xml" that contains the SOAP message. The other parts of the multi-part message contain various attachments. The HTTP 1.1 specification contains more information about the Content-Type header.
Server responsibilities The server component is responsible for receiving the SOAP request messages and sending the SOAP response messages while adhering to the following protocol constraints:
Example: SOAP request without attachments
The following example displays the results from calling the JMS message’s toString method for a request message without attachments:
JMSMessage class: jms_bytes JMSType: null JMSDeliveryMode: 2 JMSExpiration: 0 JMSPriority: 4 JMSMessageID: ID:d438eebf04cb124aa25c5821110a134f0000000000000001 JMSTimestamp: 1092110476167 JMSCorrelationID: null JMSDestination: topic://NewsGroupTopic?topicSpace=FvtTopicSpace JMSReplyTo: null JMSRedelivered: false JMS_IBM_System_MessageID: 6B6765B36943A18C_11000001 transportVersion: 1 JMSXUserID: targetService: NGConsumerJMS JMSXAppID: Service Integration Bus endpointURL: jms:/topic?destination=jms/NewsGroupTopic&connectionFactory;=jms/NewsGroupTCF&targetService;=NGConsumerJMS contentType: text/xml; charset=utf-8 3c736f6170656e763a456e76656c6f706520786d6c6e733a736f6170656e763d22687474703a2f2f 736368656d61732e786d6c736f61702e6f72672f736f61702f656e76656c6f70652f2220786d6c6e ...
JMSMessage class: jms_bytes JMSType: null JMSDeliveryMode: 2 JMSExpiration: 0 JMSPriority: 4 JMSMessageID: ID:d438eebf04cb124aa25c5821110a134f0000000000000001 JMSTimestamp: 1092110476167 JMSCorrelationID: null JMSDestination: topic://NewsGroupTopic?topicSpace=FvtTopicSpace JMSReplyTo: null JMSRedelivered: false JMS_IBM_System_MessageID: 6B6765B36943A18C_11000001 transportVersion: 1 JMSXUserID: targetService: NGConsumerJMS JMSXAppID: Service Integration Bus endpointURL: jms:/topic?destination=jms/NewsGroupTopic&connectionFactory; =jms/NewsGroupTCF&targetService;=NGConsumerJMS contentType: text/xml; charset=utf-8 3c736f6170656e763a456e76656c6f706520786d6c6e733a736f6170656e763d22687474703a2f2f 736368656d61732e786d6c736f61702e6f72672f736f61702f656e76656c6f70652f2220786d6c6e ...The following SOAP V1.1 example displays the payload from the previous message example:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <postMessage><ngName xsi:type="xsd:string">news.current.events</ngName> <msg xsi:type="xsd:string">This is a sample news item.</msg> </postMessage> </soapenv:Body> </soapenv:Envelope>
Example: SOAP request with attachments The following example displays the results from calling the JMS message’s toString method for a request message with attachments:
JMSMessage class: jms_bytes JMSType: null JMSDeliveryMode: 1 JMSExpiration: 1092086312310 JMSPriority: 4 JMSMessageID: ID:4bb64ed64e7d813d59ba5fec110a134f0000000000000001 JMSTimestamp: 1092086012310 JMSCorrelationID: null JMSDestination: queue://Logger_Q JMSReplyTo: queue://_Q_6B6765B36943A18C_00000385 JMSRedelivered: false JMS_IBM_System_MessageID: 6B6765B36943A18C_10000001 transportVersion: 1 JMSXUserID: targetService: WSLoggerJMS JMSXAppID: Service Integration Bus endpointURL: jms:/queue? destination=jms/Logger_Q&connectionFactory=jms/Logger_CF&targetService=WSLoggerJMS contentType: multipart/related; type="text/xml"; start="<945414389.1092086011970.IBM.WEBSERVICES@myhost1>"; boundary="----=_Part_0_247953397.1092086011970" 0d0a2d2d2d2d2d2d3d5f506172745f305f3234373935333339372e31303932303836303131393730 0d0a436f6e74656e742d547970653a20746578742f786d6c3b20636861727365743d5554462d380d ...The following displays the payload from the previous message example:
Content-Type: multipart/related; type="text/xml"; start="<945414389.1092086011970.IBM.WEBSERVICES@myhost1>"; boundary="----=_Part_0_247953397.1092086011970" ------=_Part_0_247953397.1092086011970 Content-Type: text/xml; charset=UTF-8 Content-Transfer-Encoding: binary Content-Id: <945414389.1092086011970.IBM.WEBSERVICES@myhost1> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header> <p499:InternationalizationContext soapenv:mustUnderstand="0" xmlns:p499="http://www.ibm.com/webservices/InternationalizationContext"> <Locales> <Locale> <LanguageCode>en</LanguageCode> <CountryCode>US</CountryCode> </Locale> </Locales> <TimeZoneId>America/Chicago</TimeZoneId> </p499:InternationalizationContext> </soapenv:Header> <soapenv:Body> <sendJpegImage/> </soapenv:Body> <soapenv:Envelope> ------=_Part_0_247953397.1092086011970 Content-Type: image/jpeg Content-Transfer-Encoding: binary Content-ID: <jpegImageRequest=81380956150.1092086011880.IBM.WEBSERVICES@myhost1> <...contents of jpeg image file...>
SOAP response The following example displays the results from calling the JMS message’s toString method for a SOAP reply message:
JMSMessage class: jms_bytes JMSType: null JMSDeliveryMode: 2 JMSExpiration: 0 JMSPriority: 4 JMSMessageID: null JMSTimestamp: 0 JMSCorrelationID: ID:cdddb857f078a266eb9a972f110a134f0000000000000001 JMSDestination: null JMSReplyTo: null JMSRedelivered: false contentType: multipart/related; type="text/xml"; start="<961368106530.1092112854745.IBM.WEBSERVICES@yackerjr>"; boundary="----=_Part_0_1655006754.1092112854745" 0d0a2d2d2d2d2d2d3d5f506172745f305f313635353030363735342e313039323131323835343734 350d0a436f6e74656e742d547970653a20746578742f786d6c3b20636861727365743d5554462d38 ...
Review the API documentation for a complete list
of APIs. You can also review several articles about the development of Web
services at Web
services: Resources for learning.