WS-Addressing information in the local environment
WS-Addressing header information can be placed in the local environment tree where it is visible to a message flow. WS-Addressing header information is only processed by the SOAP nodes.
Inbound messages
Inbound information is placed in the local environment by the SOAP node only if addressing is engaged on the node and you select the Place WS-Addressing Headers into LocalEnvironment property on the SOAPInput, SOAPAsyncResponse, or SOAPRequest nodes.
The following table describes the node specific WS-Addressing information in the local environment tree.
Node | Populates local environment property |
---|---|
SOAPInput | LocalEnvironment.SOAP.Input.WSA.type |
SOAPAsyncResponse | LocalEnvironment.SOAP.Response.WSA.type |
SOAPRequest | LocalEnvironment.SOAP.Request.WSA.type |
Where type is the structure of the subsection of the local environment WS-Addressing XML schema. For details about how type maps to the WS-Addressing properties defined by the WS-Addressing specification, see the Local environment property type section of this topic.
The local environment information for inbound
messages is for your information only. If you engage addressing on
the node, and select the Place WS-Addressing
Headers into LocalEnvironment property on the node, WS-Addressing
information is available for you to look at and use in your flow.
The WS-Addressing properties are placed in the local environment after
processing by the node. Note that the WS-Addressing folder and all
its children are owned by an XMLNSC parser, therefore you can copy
elements directly into any other tree that is owned by an XMLNSC parser.
However, be aware that if you copy this folder (or any of its children)
to a tree that is not owned by an XMLNSC parser, information in the
tree is discarded unless you create an XMLNSC parser in the target
tree first. This behavior can occur if you, for example, copy from
the InputLocalEnvironment
tree to the OutputLocalEnvironment
tree.
Outbound messages
You can place outbound WS-Addressing header information in the local environment; however, this practice is necessary only to override the defaults that are generated by the node automatically . Outbound addressing headers are created only if WS-Addressing is enabled on the node.
The following table describes the node specific WS-Addressing information in the local environment tree that can be used to override the defaults for outbound messages.
Node | Populates local environment property |
---|---|
SOAPReply | LocalEnvironment.Destination.SOAP.Reply.WSA.type |
SOAPRequest | LocalEnvironment.Destination.SOAP.Request.WSA.type |
SOAPAsyncRequest | LocalEnvironment.Destination.SOAP.Request.WSA.type |
Where type is the structure of the subsection of the local environment WS-Addressing XML schema. For details about how the type maps to the WS-Addressing properties defined by the WS-Addressing specification, see the Local environment property type section of this topic.
You
can modify local environment information for outbound messages. The SOAPReply, SOAPRequest, and SOAPAsyncRequest nodes generate
default local environment settings that you can override. One exception
to this table is that any attempt to override the WS-Addressing ReplyTo
address
on the SOAPAsyncRequest node
is ignored.
SET OutputRoot = InputRoot;
SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.To.Address = 'jms:jndi:INPUTQ';
SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.ReplyTo.Address = 'jms:jndi:RESPONSEQ?jndiConnectionFactoryName=QCF&
jndiInitialContextFactory=com.sun.jndi.fscontext.RefFSContextFactory&
jndiURL=file://C:/SOAPJNDIBindings';
SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.From.Address = 'jms:jndi:INPUTQ';
SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.FaultTo.Address = 'jms:jndi:RESPONSEQ?jndiConnectionFactoryName=QCF&
jndiInitialContextFactory=com.sun.jndi.fscontext.RefFSContextFactory&
jndiURL=file://C:/SOAPJNDIBindings';
SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.Action = 'http://WMB_BankImport/NewOperation';
SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.MessageID = 'test:my:msg:ID:1234578';
SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.Version = 'Submission-2004/08';
Local environment property type
Element | Corresponds to abstract WS-Addressing MAP name |
---|---|
To | [destination endpoint] |
From | [source endpoint] |
ReplyTo | [reply endpoint] |
FaultTo | [fault endpoint] |
Action | [action] |
MessageId | [message id] |
RelatesTo | [relationship] |
ReferenceParameters | [reference parameters] |
Version | This element does not correspond
to a MAP, but it is used to identify the version of WS-Addressing.
The two main versions of WS-Addressing are Submission and Final. The
default version that is used by all nodes is Final. Therefore, for
outbound messages, set this element only if you want the version to
be Submission. In the code example, the version is set to Submission
by the inclusion of 'Submission-2004/08' in the element.
For incoming messages, this element is populated automatically with
the version of the WS-Addressing headers that the inbound message
used. |
For more details about the message addressing properties defined by the WS-Addressing specification, see What is WS-Addressing?.
For outbound WS-Addressing, you can set an additional local environment property.
Element | Description |
---|---|
AddMustUnderstandAttribute | This element places the SOAP mustUnderstand attribute
on each WS-Addressing header before the message is sent. |