SOAP Messages Over the JMS Transport

The HTTP transport does not provide guaranteed message delivery. The SOAP protocol is not specific to any transport, so SOAP messages in theory can be bound to any transport. JMS provides a highly reliable transport that can guarantee message delivery.ActiveMatrix BusinessWorks supports sending and receiving SOAP messages over the HTTP and JMS transports.

As of Release 5.3.0, there is no standard specification for SOAP messages over JMS. TIBCO has proposed a specification with the following features:

  • One-way and request/response operations

  • Thee support is based on SOAP 1.1, SOAP 1.2, and WSDL 1.1

What's in the JMS Message

The following sections describe the content of the JMS message containing a SOAP request.

JMS Header

JMS Message Headers and Properties for SOAP messages describes the JMS Message Headers and Properties.

JMS Message Headers and Properties for SOAP messages

JMS Message Headers and Properties

Description

TIBCO Compliant

Content_Type

This header must be one of the following:

  • application/xml for SOAP 1.1 or SOAP 1.2 without attachments

  • multipart/related for SOAP 1.1 or SOAP 1.2

Note: Content type parameters are also allowed, for example, charset=utf-8.

Mime_Version

Must be the string "1.0".

SoapAction

SOAPAction value as defined in the WSDL.

JMSDestination

This contains the destination name.

JMSReplyTo

This contains the reply to address to be used by service provider to return data.

Currently, only temporary queues can be used for reply messages.

JMSMessageID

This contains a message ID generated by the JMS provider.

W3C SOAP Over JMS 1.0 Specification

SOAPJMS_targetService

This contains the Target Service value as defined in the WSDL.

SOAPJMS_bindingVersion

Must be the string "1.0"

SOAPJMS_contentType

This contains the format of the message sent.

SOAPJMS_soapAction

This contains the SOAPJMS_soapAction value as defined in the WSDL

SOAPJMS_isFault(boolean)

This contains the value of the SOAP JMS Fault.

SOAPJMS_requestURI

This contains the value of the location.

JMS Body

The JMS message body contains a binary representation of the actual SOAP message. Below is an example of a SOAP message.

<?xml version="1.0" encoding="UTF-8"?>
   <SOAP-ENV:Envelope xmlns:SOAP-ENV=
         "http://schemas.xmlsoap.org/soap/envelope/">
      <SOAP-ENV:Body SOAP-ENV:encodingStyle=
            "http://schemas.xmlsoap.org/soap/encoding/">
         <ns0:getCatalog xmlns:xs=
               "http://www.w3.org/2001/XMLSchema"
            xmlns:soap-enc=
               "http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:ns0="http://InputMessageNamespace"/>
      </SOAP-ENV:Body>
      </SOAP-ENV:Envelope>