Products | Versions |
---|---|
TIBCO BusinessEvents Enterprise Edition | - |
Not Applicable | - |
Resolution:
Description:
==========
Why does TIBCO BusinessEvents send a SOAP message with "message" as its root instead of "Envelope" when using HTTP.sendRequest() to invoke a webservice?
Environment:
===========
TIBCO BusinessEvents - 5.x
OS - all
Symptoms:
===========
This issue only happens to a SOAP event created manually. If the event is created automatically using "Import WSDL" wizard, then this is not seen.
An example of the incorrect SOAP message follows.
>>>>>>>>>>>>>>>>>>>>>
<?xml version="1.0" encoding="UTF-8"?>
<ns2:message xmlns:ns2="www.tibco.com/be/ontology/Events/MDMRequestEvent" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.tibco.com/cim/services/mastercatalogrecord/wsdl/2.0">
<ns1:Envelope>
<ns1:Body>
<ns:DataService version="2">
<ns:Identity>…..</>
</ns:DataService>
</ns1:Body>
</ns1:Envelope>
</ns2:message>
<<<<<<<<<<<<<<<<<<<<<<
An example of correct SOAP message is
>>>>>>>>>>>>>>>>>>>>>>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<ns0:Add xmlns:ns0="http://www.tibco.com/TNT/webservices/">
<a>1</a>
<b>2</b>
</ns0:Add>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<<<<<<<<<<<<<<<<<<<<<<
Cause:
===========
After an event was created, the user assgined a manually created destination to this event. The default destination of this SOAP event was not using SOAP serializer and deserializer but REST (which is default for a new destination).
Resolution:
===========
Change Serializer/Deserializer of default destination of SOAP event to com.tibco.cep.driver.http.serializer.SOAPMessageSerializer.
Refer to documentation for more details: TIBCO BusinessEvents Developer's Guide -> Chapter 6, HTTP and SOAP Channels.