cancel
Showing results for 
Search instead for 
Did you mean: 

Header missing in SOAP

Former Member
0 Kudos

Hi experts

we have a SOAP-Proxy scenario consumed from a PLSQL application.

The error returned by the call is as follows:

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">

<SOAP:Header>

</SOAP:Header>

<SOAP:Body>

<SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>SOAP:Client</faultcode><faultstring>Error during parsing of SOAP header</faultstring><faultactor>http://sap.com/xi/XI/Message/30</faultactor><detail><SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30"><SAP:Category>XIProtocol</SAP:Category><SAP:Code area="PARSER">ITEM_MISSING</SAP:Code><SAP:P1>{http://schemas.xmlsoap.org/soap/envelope/}Header</SAP:P1><SAP:P2/><SAP:P3/><SAP:P4/><SAP:AdditionalText/><SAP:Stack>XML element {http://schemas.xmlsoap.org/soap/envelope/}Header missing in SOAP message header (SAP XI Extension)

</SAP:Stack></SAP:Error></detail></SOAP:Fault>

</SOAP:Body>

</SOAP:Envelope>

The monitor (tx. sxi_monitor) has no messages.

If we execute the same message from SOAPUI, it works correctly.

How can we see what you get IP if the monitor does not have messages?

Thanks!

Accepted Solutions (1)

Accepted Solutions (1)

Former Member

hello

is solved.

Missing the SOAPAction

<http:SOAPAction> "http://sap.com/xi/WebService/soap1.1" </ http:SOAPAction>

Thanks

Answers (2)

Answers (2)

iaki_vila
Active Contributor
0 Kudos

Hi,

As Harald said your PL/SQL is generating a invalid SOAP request, try with this example http://sriworks.wordpress.com/2008/11/13/sending-soap-request-through-http-in-plsql/

Youn only need to add the <soapenv:header/> to this string:

soap_req_msg :=

      '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:myschema="http://HelloEjb"> <soapenv:Header/>

  <soapenv:Body>

  <myschema:in0><myschema:message>Test Message</myschema:message></myschema:in0>

  </soapenv:Body></soapenv:Envelope>';

Also, inside the body you need to put your payload.

Regards.

Former Member
0 Kudos

Hi,

So you make a request from PLSQL application via SOAP -> PI -> Proxy? Call returns the above error.

When you do the same via SOAP UI you don't get any error?

I assume that the request from the PLSQL application is not correct. You could use an application like Wireshark to trace the request going out from the PLSQL host to SAP PI.

Best Regards

Harald