cancel
Showing results for 
Search instead for 
Did you mean: 

wsdl works with any webclient client, but SAP XI can't

deviprasad_pothireddy
Active Participant
0 Kudos

Hi all,

I need to integrate with internal(Flexware ) system using websercies. So internal(flexware ) system has provided one wsdl file.

I have taken that wsdl file and tested with webclients like( Altova xml spy, and soapUi) and it is working fine.

I have done http2soap integration in SAPXI to integrate with internal(flexware) system.

But it is giving some errors.

If I consuming the open WSDL( like currency converter ) in SAP XI, it is working fine.

My internal wsdl file :

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

- <wsdl:definitions targetNamespace="http://xxxxxx:xxx/services/XIReceiver" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://xxxxxx:xxx/services/XIReceiver" xmlns:intf="http://xxxx:xxxxx/services/XIReceiver" 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 created by Apache Axis version: 1.4

Built on Apr 22, 2006 (06:55:48 PDT)

-->

- <wsdl:types>

- <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">

<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />

- <complexType name="Vector">

- <sequence>

<element maxOccurs="1" minOccurs="1" name="item" type="xsd:string" />

</sequence>

</complexType>

</schema>

</wsdl:types>

- <wsdl:message name="receiveXIResponse">

<wsdl:part name="receiveXIReturn" type="apachesoap:Vector" />

</wsdl:message>

- <wsdl:message name="receiveXIRequest">

<wsdl:part name="matNum" type="soapenc:string" />

<wsdl:part name="matDesc" type="soapenc:string" />

<wsdl:part name="unit" type="soapenc:string" />

</wsdl:message>

- <wsdl:portType name="XIReceiver">

- <wsdl:operation name="receiveXI" parameterOrder="matNum matDesc unit">

<wsdl:input message="impl:receiveXIRequest" name="receiveXIRequest" />

<wsdl:output message="impl:receiveXIResponse" name="receiveXIResponse" />

</wsdl:operation>

</wsdl:portType>

- <wsdl:binding name="XIReceiverSoapBinding" type="impl:XIReceiver">

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

- <wsdl:operation name="receiveXI">

<wsdlsoap:operation soapAction="" />

- <wsdl:input name="receiveXIRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.avon.com" use="encoded" />

</wsdl:input>

- <wsdl:output name="receiveXIResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://xxxxx:xxxx/services/XIReceiver" use="encoded" />

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

- <wsdl:service name="XIReceiverService">

- <wsdl:port binding="impl:XIReceiverSoapBinding" name="XIReceiver">

<wsdlsoap:address location="http://xxxx:xxxxx/services/XIReceiver" />

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

and my error in SAP XI (SXI_MONITOR)->

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

<SAP:Category>Application</SAP:Category>

<SAP:Code area="UNKNOWN">APPLICATION_ERROR</SAP:Code>

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText>application fault</SAP:AdditionalText>

<SAP:ApplicationFaultMessage namespace="http://xml.apache.org/axis/">hostname</SAP:ApplicationFaultMessage>

<SAP:Stack />

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

</SAP:Error>

Please help me for this problem

Thanks

Deviprasad Pothireddi

Accepted Solutions (0)

Answers (3)

Answers (3)

deviprasad_pothireddy
Active Participant
0 Kudos

Hi all,

I solved this problem.

This WSDL file is correct and works fine with any web client like (altova and soap-ui).

<b>Deep analysis on message request(with some values) in SAP XI and SOAP client.:</b>

when i loaded the WSDL in SAP XI External definition. it is showing showing input and output messages are

"receiveXIRequest" and "receiveXIResponse".

when i test with some dummy values in message mapping(for request) it is showing as

<receiveXIRequest>

MatNo - 1234

MatName- abcd

</receiveXIRequest>

when i test with some dummy values in any webclient(soap-ui) it is showing as

<receiveXI>

MatNo - 1234

MatName- abcd

</receiveXI>

<b>Got solution</b>: Then i have modified the WSDL as message type name into "receiveXI ". simply replace "receiveXIRequest" with "receiveXI".

Then i have been sending SAP idoc message to FLEXWARE(webservices).

Thanks,

Deviprasad Pothireddi

Former Member
0 Kudos

Hi Deviprasad,

Follow this guide and verify everything whether you have done corretly or not.

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873a2202...

Regards

Sreenivas

Former Member
0 Kudos

Hi Prasad,

<b>UR WSDL is not correct!!!

Remove all "-" from the WSDL and do it agian .....it should work</b>

use the below one !!!!

************************

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

<wsdl:definitions targetNamespace="http://xxxxxx:xxx/services/XIReceiver" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://xxxxxx:xxx/services/XIReceiver" xmlns:intf="http://xxxx:xxxxx/services/XIReceiver" 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 created by Apache Axis version: 1.4

Built on Apr 22, 2006 (06:55:48 PDT)

-->

<wsdl:types>

<schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">

<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />

<complexType name="Vector">

<sequence>

<element maxOccurs="1" minOccurs="1" name="item" type="xsd:string" />

</sequence>

</complexType>

</schema>

</wsdl:types>

<wsdl:message name="receiveXIResponse">

<wsdl:part name="receiveXIReturn" type="apachesoap:Vector" />

</wsdl:message>

<wsdl:message name="receiveXIRequest">

<wsdl:part name="matNum" type="soapenc:string" />

<wsdl:part name="matDesc" type="soapenc:string" />

<wsdl:part name="unit" type="soapenc:string" />

</wsdl:message>

<wsdl:portType name="XIReceiver">

<wsdl:operation name="receiveXI" parameterOrder="matNum matDesc unit">

<wsdl:input message="impl:receiveXIRequest" name="receiveXIRequest" />

<wsdl:output message="impl:receiveXIResponse" name="receiveXIResponse" />

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="XIReceiverSoapBinding" type="impl:XIReceiver">

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

<wsdl:operation name="receiveXI">

<wsdlsoap:operation soapAction="" />

<wsdl:input name="receiveXIRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.avon.com" use="encoded" />

</wsdl:input>

<wsdl:output name="receiveXIResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://xxxxx:xxxx/services/XIReceiver" use="encoded" />

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="XIReceiverService">

<wsdl:port binding="impl:XIReceiverSoapBinding" name="XIReceiver">

<wsdlsoap:address location="http://xxxx:xxxxx/services/XIReceiver" />

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

*********************

Regards

BILL

former_member189354
Contributor
0 Kudos

If this might be the error, then just use "pretty printer" option of altova xml spy before loading in to XI.

Regards,

Daniel.LA