cancel
Showing results for 
Search instead for 
Did you mean: 

Problems to execute SOAP message

Former Member
0 Kudos

Hi experts,

I have the following problem with this WSDL:

<wsdl:definitions targetNamespace="urn:MDirect" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:MDirect" xmlns:intf="urn:MDirect" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<wsdl:message name="sendSmsWithSenderResponse">

<wsdl:part name="sendSmsWithSenderReturn" type="xsd:string"/>

</wsdl:message>

<wsdl:message name="sendSmsWithSenderRequest">

<wsdl:part name="user" type="xsd:string"/>

<wsdl:part name="pwd" type="xsd:string"/>

<wsdl:part name="company" type="xsd:string"/>

<wsdl:part name="mobile" type="xsd:string"/>

<wsdl:part name="txt" type="xsd:string"/>

<wsdl:part name="sender" type="xsd:string"/>

</wsdl:message>

<wsdl:portType name="MDirectWS">

<wsdl:operation name="sendSmsWithSender" parameterOrder="user pwd company mobile txt sender">

<wsdl:input message="intf:sendSmsWithSenderRequest" name="sendSmsWithSenderRequest"/>

<wsdl:output message="intf:sendSmsWithSenderResponse" name="sendSmsWithSenderResponse"/>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="MDirectWSSoapBinding" type="intf:MDirectWS">

<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="sendSmsWithSender">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="sendSmsWithSenderRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:MDirect" use="encoded"/>

</wsdl:input>

<wsdl:output name="sendSmsWithSenderResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:MDirect" use="encoded"/>

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="MDirectWSService">

<wsdl:port binding="intf:MDirectWSSoapBinding" name="MDirectWS">

<wsdlsoap:address location="https://www.xxx.com/mdirectws/services/MDirectWS"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

When running the request SOAP to the WebService I returned the following error:

soap fault: No such operation 'sendSmsWithSenderRequest'

Why only happens in SAP XI?

The tool tests WebService, SOAP-IU, works well.

Thanks,

Jose.

Accepted Solutions (1)

Accepted Solutions (1)

stefan_grube
Active Contributor
0 Kudos

When you upload the WSDL, you have to select on messages: Using RPC style.

You see in your WSDL:

<wsdl:binding name="MDirectWSSoapBinding" type="intf:MDirectWS">

<wsdlsoap:binding style= "rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

Answers (4)

Answers (4)

Former Member
0 Kudos

Thanks to all,

Stefan the problem was RPC Style. By indicating that it was kind of PRC, it worked.

Thanks,

Jose.

Former Member
0 Kudos

Thanks friends,

I tried the following:

1 - The WSDL defines soapAction as follows: ...<wsdlsoap:operation soapAction=""/>...

  • Therefore, in Comm. Chan. type SOAP Receiver, he left the field SOAP Action without any value.

2 - He changed the soapAction of WSDL with the following value: ...<wsdlsoap:operation soapAction="urn:sendSmsWithSender"/>...

  • Therefore, in Comm. Chan. type SOAP Receiver, he left the field SOAP Action with the following value: urn:sendSmsWithSender

3 - He changed the soapAction of WSDL with the following value: ...<wsdlsoap:operation soapAction="sendSmsWithSender"/>...

  • Therefore, in Comm. Chan. type SOAP Receiver, he left the field SOAP Action with the following value: sendSmsWithSender

None of the three options I have worked. I continue to get the same problem. Does it make sense to modify the WSDL of a WebService?

Thaaanks,

Former Member
0 Kudos

Jose,

it is not enough just to change this value in the WSDL, this change must be done in the Web Service and generated WSDL should contain some value in soapAction.

Was it done this way?

Peter

GabrielSagaya
Active Contributor
0 Kudos

This is because the SOAP action in Your recievr SOAP adapter is incorrect.

Please check the same

Please look at these..

Hope these helps you!!

prateek
Active Contributor
0 Kudos

Check whether the SOAP action in receiver soap communication channel is proper or not

Regards,

Prateek