SOAP over JMS Support in WSDL Import and Export
SOAP and JMS are supported in WSDL Import and Export for events, channels, rules, rulefunctions and catalog functions.
WSDL Import
The WSDL Import wizard generates resources for handling SOAP and JMS bindings.
Events
One Event type named
/Events/SoapJms
. This event inherits from SOAPEvent and provides a set of properties that may be useful for SOAP and JMS. Events are operation-specific events and they are imported similarly as for the SOAP and HTTP WSDL Import.
Serializers
Two types of serializers are available for conversion between JMS messages and SOAPEvent
events. To send SOAP messages in byte format from the TIBCO BusinessEvents engine use the com.tibco.cep.driver.jms.serializer.SoapMessageSerializer
serializer. To send out messages in text format, you can use the com.tibco.cep.driver.jms.serializer.SoapTextMessageSerializer
serializer.
Channels
A JMS channel by default is located at
/Channels/SoapJms
for each different set of parameters, with one shared JMS connection resource.
By default the resource is in the Transport folder of the imported service folder. One destinations for each different set of destination parameters is designated.
By default the destination is named
destinationName
, which uses the serializer SoapMessageSerializer and the default event type
/Event/SoapJms
. See the RegisterSoapEventUris
function below, which allows the deserializer know how to deserialize message into operation-specific events instead of using the destination default.
Rules
There is one rule for each operation, which is imported similarly as for the SOAP and HTTP WSDL Import.
By default, the rule replies with a SOAP fault stating that the operation is not implemented.
RuleFunctions
There is one RuleFunction for each operation, which is imported similarly as for the SOAP and HTTP WSDL Import.
If desired, the RuleFunction can be used as a preprocessor function.
The one RuleFunction is named,
RegisterSoapEventUris
.
By default, it is available in the Transport folder of the imported service folder. This registers in the JMS SoapMessageSerializer, and event type for each operation that is reachable by a SOAP and JMS binding. It should be invoked as a startup function.
Catalog Functions
A serializer and deserializer for SOAP and JMS has been added to the JMS destinations. This serializer handles the conversion between the JMS messages and SOAPEvent events. Two help catalog functions are provided as well:
Catalog Function | Description |
---|---|
SOAP.registerEventUri() | Voids registerEventUri(String event Uri, String destinationUri, String serviceName, String soapAction, String Preprocessor)
Associates an event type to a given input destination, target service, and SOAP action. This is used by the SOAP and JMS deserializer to generate events of specific types (eventUri) instead of using the default event type resolution mechanism.
|
SOAP.newCorrelationId() | String newCorrelationId(String responseEventUri)
Creates a new correlation ID for use when sending a message in a request and response case. This is used by the SOAP and JMS deserializer to generate a response event of a specific type, instead of using the default event type resolution mechanism.
|
WSDL Export
The WSDL Export was implemented to support SOAP and JMS, but it has some limitations. The following include its limitations:
- It uses the TIBCO format and not W3C.
- It relies on the presence of an event registration startup function with a body that looks like something that is generated during WSDL Import.
- It relies on a folder structure that is similar to what is generated during import.
- It does not export all of the possible information, for example, the reply-to names.