cancel
Showing results for 
Search instead for 
Did you mean: 

Error message on RPC although document style used

0 Kudos

Hello,

I try to generate an abap client proxy, but I always receive the message SPRX 046 saying 'message must have only one part'.

I 've read somewhere in this forum that this message is supposed to be issued for RPC style Wsdl, but mine is document literal.

Has anyone got an idea?

Thanks for helping.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

hi,

is it document/literal or is it only declared to be document/literal(style, use attributes) but does have more than 1 parts in the messages?

maybe you supply the WSDL(URL) if thats possible.

anton

0 Kudos

Hello,

Indeed some messages have more than 1 part. Does it mean it is not really document litteral?

0 Kudos

If this can help a diagnosis, here is the wsdl I try to use

Thanks a lot for helping.

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

- <wsdl:definitions targetNamespace="http://10.1.70.16:8080/coriolis/services/interface_metier" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://10.1.70.16:8080/coriolis/services/interface_metier" xmlns:intf="http://10.1.70.16:8080/coriolis/services/interface_metier" xmlns:tns1="http://services.webcoriolis" xmlns:tns2="http://exception.services.webcoriolis" xmlns:tns3="http://exception.ecran.webcoriolisV2" 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 elementFormDefault="qualified" targetNamespace="http://services.webcoriolis" xmlns="http://www.w3.org/2001/XMLSchema">

<import namespace="http://exception.ecran.webcoriolisV2" />

<import namespace="http://xml.apache.org/xml-soap" />

<import namespace="http://10.1.70.16:8080/coriolis/services/interface_metier" />

<import namespace="http://exception.services.webcoriolis" />

<element name="idSessionStr" type="xsd:string" />

<element name="trameEnvoyee" type="xsd:string" />

<element name="idSessionStr1" type="xsd:string" />

<element name="nomAPI" type="xsd:string" />

<element name="trameEnvoyee1" type="xsd:string" />

<element name="nomAPI1" type="xsd:string" />

<element name="idSessionStr2" type="xsd:string" />

<element name="nomAPI2" type="xsd:string" />

</schema>

- <schema elementFormDefault="qualified" targetNamespace="http://10.1.70.16:8080/coriolis/services/interface_metier" xmlns="http://www.w3.org/2001/XMLSchema">

<import namespace="http://exception.ecran.webcoriolisV2" />

<import namespace="http://xml.apache.org/xml-soap" />

<import namespace="http://exception.services.webcoriolis" />

<element name="lancerAPIReturn" type="xsd:string" />

<element name="fault" type="tns2:CoriolisServiceException" />

- <complexType name="ArrayOf_xsd_anyType">

- <sequence>

<element maxOccurs="unbounded" minOccurs="0" name="item" type="xsd:anyType" />

</sequence>

</complexType>

<element name="fault1" type="tns3:SessionUserInexistanteException" />

<element name="lancerAPIReturn1" type="xsd:string" />

<element name="trameAPIReturn" type="xsd:string" />

<element name="trameAPIReturn1" type="xsd:string" />

</schema>

- <schema elementFormDefault="qualified" targetNamespace="http://exception.services.webcoriolis" xmlns="http://www.w3.org/2001/XMLSchema">

<import namespace="http://exception.ecran.webcoriolisV2" />

<import namespace="http://xml.apache.org/xml-soap" />

<import namespace="http://10.1.70.16:8080/coriolis/services/interface_metier" />

- <complexType name="CoriolisServiceException">

- <sequence>

<element name="erreur" nillable="true" type="xsd:string" />

</sequence>

</complexType>

</schema>

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

<import namespace="http://exception.ecran.webcoriolisV2" />

<import namespace="http://10.1.70.16:8080/coriolis/services/interface_metier" />

<import namespace="http://exception.services.webcoriolis" />

- <complexType name="Vector">

- <sequence>

<element maxOccurs="unbounded" minOccurs="0" name="item" type="xsd:anyType" />

</sequence>

</complexType>

</schema>

- <schema elementFormDefault="qualified" targetNamespace="http://exception.ecran.webcoriolisV2" xmlns="http://www.w3.org/2001/XMLSchema">

<import namespace="http://xml.apache.org/xml-soap" />

<import namespace="http://10.1.70.16:8080/coriolis/services/interface_metier" />

<import namespace="http://exception.services.webcoriolis" />

- <complexType name="TraitementException">

- <sequence>

<element name="erreur" nillable="true" type="xsd:string" />

<element name="erreurBloquanteDansFeuille" type="xsd:boolean" />

<element name="listeErreurs" nillable="true" type="impl:ArrayOf_xsd_anyType" />

<element name="listeTramesErreurs" nillable="true" type="impl:ArrayOf_xsd_anyType" />

<element name="messageErreur" nillable="true" type="xsd:string" />

<element name="retourServeur" type="xsd:boolean" />

<element name="typeErreur" nillable="true" type="xsd:string" />

</sequence>

</complexType>

- <complexType name="SessionUserInexistanteException">

- <complexContent>

- <extension base="tns3:TraitementException">

<sequence />

</extension>

</complexContent>

</complexType>

</schema>

</wsdl:types>

- <wsdl:message name="lancerAPIResponse">

<wsdl:part element="impl:lancerAPIReturn" name="lancerAPIReturn" />

</wsdl:message>

- <wsdl:message name="lancerAPIRequest">

<wsdl:part element="tns1:idSessionStr" name="idSessionStr" />

<wsdl:part element="tns1:trameEnvoyee" name="trameEnvoyee" />

</wsdl:message>

- <wsdl:message name="trameAPIRequest">

<wsdl:part element="tns1:nomAPI1" name="nomAPI" />

</wsdl:message>

- <wsdl:message name="trameAPIResponse">

<wsdl:part element="impl:trameAPIReturn" name="trameAPIReturn" />

</wsdl:message>

- <wsdl:message name="lancerAPIRequest1">

<wsdl:part element="tns1:idSessionStr1" name="idSessionStr" />

<wsdl:part element="tns1:nomAPI" name="nomAPI" />

<wsdl:part element="tns1:trameEnvoyee1" name="trameEnvoyee" />

</wsdl:message>

- <wsdl:message name="trameAPIRequest1">

<wsdl:part element="tns1:idSessionStr2" name="idSessionStr" />

<wsdl:part element="tns1:nomAPI2" name="nomAPI" />

</wsdl:message>

- <wsdl:message name="SessionUserInexistanteException">

<wsdl:part element="impl:fault1" name="fault" />

</wsdl:message>

- <wsdl:message name="trameAPIResponse1">

<wsdl:part element="impl:trameAPIReturn1" name="trameAPIReturn" />

</wsdl:message>

- <wsdl:message name="lancerAPIResponse1">

<wsdl:part element="impl:lancerAPIReturn1" name="lancerAPIReturn" />

</wsdl:message>

- <wsdl:message name="CoriolisServiceException">

<wsdl:part element="impl:fault" name="fault" />

</wsdl:message>

- <wsdl:portType name="LanceurAPIFacade">

- <wsdl:operation name="lancerAPI" parameterOrder="idSessionStr trameEnvoyee">

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

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

<wsdl:fault message="impl:CoriolisServiceException" name="CoriolisServiceException" />

<wsdl:fault message="impl:SessionUserInexistanteException" name="SessionUserInexistanteException" />

</wsdl:operation>

- <wsdl:operation name="lancerAPI" parameterOrder="idSessionStr nomAPI trameEnvoyee">

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

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

<wsdl:fault message="impl:CoriolisServiceException" name="CoriolisServiceException" />

<wsdl:fault message="impl:SessionUserInexistanteException" name="SessionUserInexistanteException" />

</wsdl:operation>

- <wsdl:operation name="trameAPI" parameterOrder="nomAPI">

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

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

<wsdl:fault message="impl:CoriolisServiceException" name="CoriolisServiceException" />

</wsdl:operation>

- <wsdl:operation name="trameAPI" parameterOrder="idSessionStr nomAPI">

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

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

<wsdl:fault message="impl:CoriolisServiceException" name="CoriolisServiceException" />

<wsdl:fault message="impl:SessionUserInexistanteException" name="SessionUserInexistanteException" />

</wsdl:operation>

</wsdl:portType>

- <wsdl:binding name="interface_metierSoapBinding" type="impl:LanceurAPIFacade">

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

- <wsdl:operation name="lancerAPI">

<wsdlsoap:operation soapAction="" />

- <wsdl:input name="lancerAPIRequest">

<wsdlsoap:body use="literal" />

</wsdl:input>

- <wsdl:output name="lancerAPIResponse">

<wsdlsoap:body use="literal" />

</wsdl:output>

- <wsdl:fault name="CoriolisServiceException">

<wsdlsoap:fault name="CoriolisServiceException" use="literal" />

</wsdl:fault>

- <wsdl:fault name="SessionUserInexistanteException">

<wsdlsoap:fault name="SessionUserInexistanteException" use="literal" />

</wsdl:fault>

</wsdl:operation>

- <wsdl:operation name="lancerAPI">

<wsdlsoap:operation soapAction="" />

- <wsdl:input name="lancerAPIRequest1">

<wsdlsoap:body use="literal" />

</wsdl:input>

- <wsdl:output name="lancerAPIResponse1">

<wsdlsoap:body use="literal" />

</wsdl:output>

- <wsdl:fault name="CoriolisServiceException">

<wsdlsoap:fault name="CoriolisServiceException" use="literal" />

</wsdl:fault>

- <wsdl:fault name="SessionUserInexistanteException">

<wsdlsoap:fault name="SessionUserInexistanteException" use="literal" />

</wsdl:fault>

</wsdl:operation>

- <wsdl:operation name="trameAPI">

<wsdlsoap:operation soapAction="" />

- <wsdl:input name="trameAPIRequest">

<wsdlsoap:body use="literal" />

</wsdl:input>

- <wsdl:output name="trameAPIResponse">

<wsdlsoap:body use="literal" />

</wsdl:output>

- <wsdl:fault name="CoriolisServiceException">

<wsdlsoap:fault name="CoriolisServiceException" use="literal" />

</wsdl:fault>

</wsdl:operation>

- <wsdl:operation name="trameAPI">

<wsdlsoap:operation soapAction="" />

- <wsdl:input name="trameAPIRequest1">

<wsdlsoap:body use="literal" />

</wsdl:input>

- <wsdl:output name="trameAPIResponse1">

<wsdlsoap:body use="literal" />

</wsdl:output>

- <wsdl:fault name="CoriolisServiceException">

<wsdlsoap:fault name="CoriolisServiceException" use="literal" />

</wsdl:fault>

- <wsdl:fault name="SessionUserInexistanteException">

<wsdlsoap:fault name="SessionUserInexistanteException" use="literal" />

</wsdl:fault>

</wsdl:operation>

</wsdl:binding>

- <wsdl:service name="LanceurAPIFacadeService">

- <wsdl:port binding="impl:interface_metierSoapBinding" name="interface_metier">

<wsdlsoap:address location="http://10.1.70.16:8080/coriolis/services/interface_metier" />

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

Former Member
0 Kudos

hi,

to me this looks like rpc/literal, a very rare combination.

you might read <a href="http://msdn2.microsoft.com/en-us/library/ms996466.aspx">this</a> for further information.

regards,

anton

0 Kudos

Hello Anton,

Thank you for your information. I checked the file and there is a strange thing:

On one hand, in the 'binding' part of the file, the style and use are said to be document literal.

On the other hand, if I look at the messages, some of them do have several part elements.

This leads me to the following questions :

Do you know how I can make sure that the wsdl is correct?

Are there converters I could use to convert my wsdl file to the right style and use?

Thank you for helping