cancel
Showing results for 
Search instead for 
Did you mean: 

Determining why web service call is failing

alancecchini
Participant
0 Kudos

Hi,

I have configured an ABAP proxy to SOAP scenario which is passing a single parameter to the web service.

This is failing with the following error but I'm unable to determine the exact reason why.

The problem may be with the namespace requirement but can't be sure - I can get the service call working with SOAP UI but the namespace is entered slightly differently than I can achieve with SAP PI using the standard configuration.

Alternatively it could be that SAP PI uses an attachment for the payload.

I was receiving the error below when using SOAP UI at various stages but I'd like someone to confirm that this type of error category is being raised by the receiving web server and not SAP PI?

Also, is there any way of seeing exactly what the SOAP message looked like when received by the web service?

I'm not sure if the display in SXMB_MONI under inbound message is how this looks to SAP PI rather than the onward message.

Thanks,

Alan

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Inbound Message

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">

<SAP:Category>XIAdapter</SAP:Category>

<SAP:Code area="PARSING">ADAPTER.SOAP_EXCEPTION</SAP:Code>

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText>soap fault: Server was unable to process request. ---> Object reference not set to an instance of an object.</SAP:AdditionalText>

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack />

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

Accepted Solutions (0)

Answers (4)

Answers (4)

alancecchini
Participant
0 Kudos

Hi,

Thanks for the suggestions so far.

I cannot use the WSDL for the web service provided by the third party company as it contains an element with mixed="true" which is preventing me from creating an ABAP proxy for this definition (I've pasted WSDL content further below).

To work around this I have created a message type and data type to reflect the requirements - the payload must be supplied with additional data which the WSDL doesn't specify (they reuse the same WSDL for many services which is a pain for me!).

I had a look at the communication channel monitoring but this only seems to show me the SOAP envelope and not the payload - is it possible to get to the payload data?

I also hacve just installed TCPGateway but I'm not sure what I need to put in the server/host given my call is from an ABAP proxy (presumably just the SAP PI server and host that will have been defined in SXMB_ADM)?

I'll persevere and report back but in the meantime but any further advice would be appreciated .

Thanks,

Alan

<s:element name="ProcessRequest">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="userName" type="s:string" />

<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />

<s:element minOccurs="0" maxOccurs="1" name="process" type="s:string" />

<s:element minOccurs="0" maxOccurs="1" name="payload">

<s:complexType mixed="true">

<s:sequence>

<s:any />

</s:sequence>

</s:complexType>

</s:element>

</s:sequence>

</s:complexType>

</s:element>

Former Member
0 Kudos

hi,

Compare the webserivce request from SOAP UI tool with SAP PI on path RWB Communication channel monitoring Message content for your SOAP Rec Adapter. This will give you the actual content that moves out of XI.

As correctly said by Prateek, it is because of some mismatch in strcuture required by WEBSERVER and struc sent by SAP XI.

Please post the request message with success( from SOAP UI tool) and failure case from SAP PI ( Output of Adapter in CC monitoring)

Anurag

prateek
Active Contributor
0 Kudos

Open you wsdl and check if you have soapAction node present towards bottom of it. If yes, you need to provide the same field value to Communication channel Soap Action parameter.

If this doesn't solve your problem, you may trace your webservice call to identify the error using TCPGateway.

/people/stefan.grube/blog/2007/03/29/troubleshooting-soap-http-and-mail-adapter-scenarios-with-tcpgateway

Regards,

Prateek

former_member200962
Active Contributor
0 Kudos

This error occurs when there is some structure mismatch that XI is sending to the target system:

Confirm that the WSDL structure (XML data) is containing all the nodes....check it in SXMB_MONI and cross-check with the WSDL that you have imported

Regards,

Abhishek.