Why does TIBCO BusinessEvents send a SOAP message with "message" as its root instead of "Envelope" when using HTTP.sendRequest() to invoke a webservice?

Why does TIBCO BusinessEvents send a SOAP message with "message" as its root instead of "Envelope" when using HTTP.sendRequest() to invoke a webservice?

book

Article ID: KB0091185

calendar_today

Updated On:

Products Versions
TIBCO BusinessEvents Enterprise Edition -
Not Applicable -

Description

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"?>
&ltns2: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">
&ltns1:Envelope>
&ltns1:Body>
&ltns:DataService version="2">
&ltns:Identity>…..</>
</ns:DataService>
</ns1:Body>
</ns1:Envelope>
</ns2:message>
<<<<<<<<<<<<<<<<<<<<<<

An example of correct SOAP message is
>>>>>>>>>>>>>>>>>>>>>>
<?xml version="1.0" encoding="UTF-8"?>
&ltSOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    &ltSOAP-ENV:Body>
        &ltns0:Add xmlns:ns0="http://www.tibco.com/TNT/webservices/">
            &lta&gt1</a>
            &ltb&gt2</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.

Issue/Introduction

Why does TIBCO BusinessEvents send a SOAP message with "message" as its root instead of "Envelope" when using HTTP.sendRequest() to invoke a webservice?