How Integration Server Determines which Operation to Invoke
Determining the Operation for an HTTP/S Request
About this task
When Integration Server receives a web service request sent over HTTP/S, Integration Server uses the following process to identify the SOAP action and determine which operation (IS service) to invoke:
Procedure
Determining the Operation for a SOAP/JMS Request
About this task
When Integration Server receives a web service request sent over SOAP/JMS, Integration Server uses the following process to identify the SOAP action and determine which operation (IS service) to invoke:
Procedure
Fallback Mechanisms for Determining the Operation
If the endpoint URL and SOAP header do not contain enough information for Integration Server to determine which IS service to invoke, Integration Server employs fallback mechanisms. The approach Integration Server takes to determine the operation depends on what information is missing from the endpoint URL or SOAP message.
Port Name Is Not Specified
If the endpoint URL does not specify a port name (for messages sent over HTTP/S) or the port name is missing from the soapJMS:targetService property (for messages sent via SOAP/JMS), Integration Server attempts to determine the operation by first identifying the SOAP version. Integration Server also obtains the SOAP action value from the SOAP message. Integration Server then looks in the web service descriptor for a binder that uses the specified SOAP version and contains an operation with the specified SOAP action value. Integration Server invokes the IS service that corresponds to this operation.
If Integration Server cannot find an operation with that SOAP action value or there are multiple operations with that SOAP action value, Integration Server compares the fully qualified name of the first element in the SOAP body to the expected first element for an operation. For operations with a Document style, the expected first element is the first part element declared for the operation’s input message in the WSDL document. For operations with an RPC style, the expected first element will have the same name as the operation in the WSDL document. Integration Server then invokes the IS service that corresponds to this operation.
If, after searching for the fully qualified name of the first element in the SOAP body, Integration Server cannot determine which operation to invoke, Integration Server returns a SOAP fault to the web service client.
Duplicate SOAP Action
If multiple operations share the same SOAP action value, Integration Server determines the operation to invoke by examining the fully qualified name (namespace name and local name) of the first element in the SOAP body.
Integration Server compares the element name to the expected first element for an operation. For operations with a Document style, the expected first element is the first part element declared for the operation’s input message in the WSDL document. For operations with an RPC style, the expected first element will have the same name as the operation in the WSDL document. Integration Server then invokes the IS service that corresponds to this operation.
If, after searching for the fully qualified name of the first element in the SOAP body, Integration Server cannot determine the operation to invoke, Integration Server returns a SOAP fault to the web service client.
SOAP Action Value Is Empty, Absent or Cannot Be Resolved
If the SOAP message has an empty SOAP action, does not contain a SOAP action, or the SOAP action value cannot be resolved (i.e., no operation in the binder has the specified SOAP action value), Integration Server searches the binder for an operation with no defined SOAP action value or an empty SOAP action. If the binder contains a single operation that does not have a SOAP action value, Integration Server executes the IS service that corresponds to this operation. If the binder contains multiple operations without an assigned SOAP action value, Integration Server treats the absent SOAP action values as duplicate SOAP action values. For information about how Integration Server determines which operation to invoke when there are duplicate SOAP action values in a binder, see #id418e8534-bbde-4b6f-b567-5de7b0fdd1c9.
If the binder does not contain an operation with an empty SOAP action, Integration Server compares the fully qualified name of the first element in the SOAP body to the expected first element for an operation. For operations with a Document style, the expected first element is the first part element declared for the operation’s input message in the WSDL document. For operations with an RPC style, the expected first element will have the same name as the operation in the WSDL document. Integration Server then invokes the IS service that corresponds to this operation.
If, after searching for the fully qualified name of the first element in the SOAP body, Integration Server cannot determine which operation to invoke, Integration Server returns a SOAP fault to the web service client.