SOAP Receiver

Definition

Protocol

SOAP

 

 

Description

Receive SOAP messages on Host using Port (default 80) via HTTP protocol.

 

 

Comments

If Host parameter is missing or invalid, the localhost will be used.

If Port parameter is missing or invalid, the default value will be used.

To send SOAP messages to the EventGnosis SOAPReceiver, the URL must have the /soap context.
For example: http://<hostname>/soap

If the content of <SOAP-ENV:Body> is not an event, a new event will be created out of the SOAP message with the following structure (the content will first be translated according to the XML Character Translation table):  

<ev:event xmlns:ev="http://www.eventgnosis.com/">
	<ev:host>host_name</ev:host>
	<ev:app>SOAP</ev:app>
	<ev:log>host_name:ecs_name\eca_name\SOAP_receiver_name\host:port</ev:log>
	<ev:msg>content_of_<SOAP-ENV:Body></ev:msg>
</ev:event>

Important:

If you are using third party software to send soap messages to the SOAPReceiver,
make sure that the SOAP envelope and body look exactly like the example below
(i.e. it must contain the xml header and no spaces, tabs, or <nl> between the envelope and body) or the SOAP message will be considered invalid.

Envelope and body start:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2002/12/soap-envelope"><SOAP-ENV:Body  xmlns:m="http://www.eventgnosis.com/">

Envelope and body end.

</SOAP-ENV:Body></SOAP-ENV:Envelope>

If the content of your SOAP message contains an EventGnosis event, it must start with

<ev:event  xmlns:ev="http://www.eventgnosis.com/">

and it must also end with </ev:event>.

 

 

 

Example

Original message:


<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2002/12/soap-envelope"><SOAP-ENV:Body  xmlns:m="http://www.eventgnosis.com/"> Some content </SOAP-ENV:Body></SOAP-ENV:Envelope>
Created event:
<event> <ev:host>host_name</ev:host> <ev:app>SOAP</ev:app> <ev:log>host_name:ecs_name\eca_name\SOAP_receiver_name\host:port</ev:log> <ev:msg>Some content</ev:msg> </event>
The response to this message will be:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2002/12/soap-envelope"><SOAP-ENV:Body  xmlns:m="http://www.eventgnosis.com/"> <ev:event xmlns:ev="http://www.eventgnosis.com/"> <ev:host>host_name</ev:host> <ev:app>SOAP</ev:app> <ev:log>host_name:ecs_name\eca_name\SOAP_receiver_name\host:port</ev:log> <ev:msg>Non standard SOAP message event received. Event created with ev:msg field set to SOAP-ENV:Body content. </ev:msg> <ev:srctime>some time</ev:srctime> <ev:eventsReceived>1</ev:eventsReceived> <ev:error></ev:error> </ev:event> </SOAP-ENV:Body></SOAP-ENV:Envelope>
If the message does not contain an xml header, or its envelope and body are not made as stated above in the Important section, then a new event will be created with the ev:error field set to "Bad SOAP envelope or body!"
The respone will be:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2002/12/soap-envelope"><SOAP-ENV:Body  xmlns:m="http://www.eventgnosis.com/"> <ev:event xmlns:ev="http://www.eventgnosis.com/"> <ev:host>beli</ev:host> <ev:log>host_name:ecs_name\eca_name\SOAP_receiver_name\host:port </ev:log> <ev:app>SOAP</ev:app> <ev:srctime>some time</ev:srctime> <ev:msg>Bad SOAP envelope or body!</ev:msg> <ev:error>Bad SOAP envelope or body!</ev:error> </ev:event> </SOAP-ENV:Body></SOAP-ENV:Envelope>
If the message has an empty SOAP body, a new event will be created with the ev:error field set to "Empty SOAP message body."
The response will be:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2002/12/soap-envelope"><SOAP-ENV:Body  xmlns:m="http://www.eventgnosis.com/"> <ev:event xmlns:ev="http://www.eventgnosis.com/"> <ev:host>beli</ev:host> <ev:log>beli_name:ecs_name\eca_name\SOAP_receiver_name\host:port </ev:log> <ev:app>SOAP</ev:app> <ev:srctime>some time</ev:srctime> <ev:msg>The body of the SOAP message was empty</ev:msg> <ev:error>Empty SOAP message body.</ev:error> </ev:event>
</SOAP-ENV:Body></SOAP-ENV:Envelope>