on 04-23-2012 6:08 AM
Hi,
We are integrating Salesforce.com with PI via web service. Its a two step process. first we are getting the session Id by calling enterprise wsdl and then we need to call the import contact wsdl using the session id for uploading the contact details in salesforce. We are creating the soap envelop manually for sending the session id for the second soap call. While executing end to end scenario in PI we are getting the below error
"Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error"
When we test the same scenario using soap ui we are getting the proper response.
We analysied and found the below:
When we use soap ui the below lines are added by default in the request before the soap envelop
POST https://cs3-api.salesforce.com/services/Soap/class/ContactWS HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
User-Agent: Jakarta Commons-HttpClient/3.1
Host: cs3-api.salesforce.com
Content-Length: 1971
Now when we test the same with PI, the above declaration is not added since we check the option of "do not use soap envelop" in the receiver soap channel (as we are building custom header in java)
Please help in getting the error rectified. Any pointers for adding the above declaration before the soap envelop or any other method for passing the session id using the default soap header(in receiver soap channel) would be very helpful.
Thanks in advance.
Pooja
Hi,
I think the error "XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error" is not connected to missing HTTP header values. It is also thrown (in manual SOAP envelope mode) when a SOAPFault is sent, please see SAPNote 1533195 and SAPNote 1055678.
Regards,
Hans
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
The additional lines you mentioned are not really SOAP Header, but HTTP Header, and they are also included by PI accordingly, based on your receiver communication channel configuration. So most probably this is not the reason for your problem. You can use the TCP Gateway application, recommended by SAP, if you want to make sure about that. But I would rather search somewhere else for the source of this problem, if I were you. For instance, it might be a metter of namespaces in the XML content. Try executing the web service from SOAP UI with exactly the same content (including SOAP Envelope) as you sent from PI - what is the result?
Regards,
Greg
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I tried testing in SOAP UI and it was processed successfully. also checked on the SOAP envelop we are creating in the mapping looks same as the one being used in SOAP UI. Will check using tcpmon and check how the http headers are sent.Also can you please let me know how to set http headers while using soap channel?
Regards,
Pooja
Hi Pooja
If you are not already aware- do note that when you use the "do not use soap envelop" option in the adapter, that SOAP fault messages which are returned by the provider are seen as server errors by the adapter and result in
HTTP 500 Internal Server Error.
FYI To be able to process soap faults you need to add the parameter: XMBWS.NoSOAPIgnoreStatusCode = true to the module configuration of the soap adapter where you have selected "do not use soap envelop".
Hope that helped.
Regards
Adam
Hello,
When checking the Do Not Use SOAP Envelope, the content type changes from text/xml to application/xml. Can you use the MessageTransformBean to change the content type back to text/xml and let us know of the result?
POST https://cs3-api.salesforce.com/services/Soap/class/ContactWS HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
User-Agent: Jakarta Commons-HttpClient/3.1
Host: cs3-api.salesforce.com
Content-Length: 1971
Is the SOAP Action really ""? Is the webservice using SOAP 1.2?
You might also try checking your firewall settings e.g SOAP UI is allowed to make that request but PI is not.
Hope this helps,
Mark
User | Count |
---|---|
81 | |
9 | |
9 | |
7 | |
7 | |
6 | |
6 | |
6 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.