Marcos, A document/literal message should contain at most one body message part. You have defined three. You need to define a wrapper element for your three body elements. For better interoperability, I suggest you use the "wrapped" style. Give the wrapper element the same name as your operation, and define the element as a sequence of the three body elements. Make the following changes to the WSDL:
Add this element definition to the <types> section: <element name="classificacaoFindLikeName"> <complexType> <sequence> <element ref="impl:ds_clitr"/> <element ref="impl:vl_inic"/> <element ref="impl:vl_taman"/> </sequence> </complexType> </element> Change your <message> definition to: <wsdl:message name="classificacaoFindLikeNameRequest"> <wsdl:part element="impl:classificacaoFindLikeName" name="parameters"/> </wsdl:message> Remove the parameterOrder attributes from your <portType> definitions. Do likewise for the other messages with multiple parts. Regards, Anne -----Original Message----- From: Marcos Macedo [mailto:[EMAIL PROTECTED] Sent: Monday, November 01, 2004 12:24 PM To: [EMAIL PROTECTED] Subject: soap body request missing operator in document/literal style this is how my soap request show in tcpmon: ( http://rafb.net/paste/results/xdTj2L70.html ) POST /BusinessModule/services/BillingService HTTP/1.0 Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.2RC1 Host: 127.0.0.1:8081 Cache-Control: no-cache Pragma: no-cache SOAPAction: "classificacaoFindLikeName" Content-Length: 450 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ds_clitr xmlns="http://server.service.billing.polaris.com.br">HARD%</ds_clitr> <vl_inic xmlns="http://server.service.billing.polaris.com.br">0</vl_inic> <vl_taman xmlns="http://server.service.billing.polaris.com.br">1</vl_taman> </soapenv:Body></soapenv:Envelope> ---------- this is my wsdl ( http://rafb.net/paste/results/ZwXohv63.html ): <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://service.billing.polaris.com.br" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://server.service.billing.polaris.com.br" xmlns:intf="http://service.billing.polaris.com.br" xmlns:stubs="http://stubs.service.billing.polaris.com.br" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <schema elementFormDefault="qualified" targetNamespace="http://server.service.billing.polaris.com.br" xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="http://stubs.service.billing.polaris.com.br"/> <element name="ds_clitr" type="xsd:string"/> <element name="vl_inic" type="xsd:int"/> <element name="vl_taman" type="xsd:int"/> <element name="cd_clitr" type="xsd:int"/> <element name="vl_clitr" type="stubs:Clitr"/> <element name="classificacaoGetReturn" type="stubs:Clitr"/> <element name="classificacaoFindByNameReturn" type="stubs:Clitr"/> <element name="classificacaoFindLikeNameReturn" type="stubs:ArrayOf_Clitr"/> <element name="classificacaoFindAllPageReturn" type="stubs:ArrayOf_Clitr"/> <element name="classificacaoFindAllReturn" type="stubs:ArrayOf_Clitr"/> </schema> <schema elementFormDefault="qualified" targetNamespace="http://stubs.service.billing.polaris.com.br" xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="http://billing.polaris.com.br"/> <complexType name="ArrayOf_Clitr"> <sequence> <element minOccurs="0" maxOccurs="unbounded" name="list" nillable="true" type="stubs:Clitr" /> </sequence> </complexType> <complexType name="Clitr"> <sequence> <element name="cd_clitr" nillable="true" type="xsd:int"/> <element name="ds_clitr" type="xsd:string"/> </sequence> </complexType> </schema> </wsdl:types> <wsdl:message name="classificacaoFindLikeNameRequest"> <wsdl:part element="impl:ds_clitr" name="ds_clitr"/> <wsdl:part element="impl:vl_inic" name="vl_inic"/> <wsdl:part element="impl:vl_taman" name="vl_taman"/> </wsdl:message> <wsdl:message name="classificacaoRemoveResponse"> </wsdl:message> <wsdl:message name="classificacaoGetRequest"> <wsdl:part element="impl:cd_clitr" name="cd_clitr"/> </wsdl:message> <wsdl:message name="classificacaoFindAllRequest"> </wsdl:message> <wsdl:message name="classificacaoSaveOrUpdateRequest"> <wsdl:part element="impl:vl_clitr" name="vl_clitr"/> </wsdl:message> <wsdl:message name="classificacaoRemoveRequest"> <wsdl:part element="impl:cd_clitr" name="cd_clitr"/> </wsdl:message> <wsdl:message name="classificacaoFindByNameResponse"> <wsdl:part element="impl:classificacaoFindByNameReturn" name="classificacaoFindByNameReturn"/> </wsdl:message> <wsdl:message name="classificacaoFindAllResponse"> <wsdl:part element="impl:classificacaoFindAllReturn" name="classificacaoFindAllReturn"/> </wsdl:message> <wsdl:message name="classificacaoSaveOrUpdateResponse"> </wsdl:message> <wsdl:message name="classificacaoFindByNameRequest"> <wsdl:part element="impl:ds_clitr" name="ds_clitr"/> </wsdl:message> <wsdl:message name="classificacaoFindLikeNameResponse"> <wsdl:part element="impl:classificacaoFindLikeNameReturn" name="classificacaoFindLikeNameReturn"/> </wsdl:message> <wsdl:message name="classificacaoGetResponse"> <wsdl:part element="impl:classificacaoGetReturn" name="classificacaoGetReturn"/> </wsdl:message> <wsdl:message name="classificacaoFindAllPageResponse"> <wsdl:part element="impl:classificacaoFindAllPageReturn" name="classificacaoFindAllPageReturn"/> </wsdl:message> <wsdl:message name="classificacaoFindAllPageRequest"> <wsdl:part element="impl:vl_inic" name="vl_inic"/> <wsdl:part element="impl:vl_taman" name="vl_taman"/> </wsdl:message> <wsdl:portType name="JaxRpcBilling"> <wsdl:operation name="classificacaoFindByName" parameterOrder="ds_clitr"> <wsdl:input message="intf:classificacaoFindByNameRequest" name="classificacaoFindByNameRequest"/> <wsdl:output message="intf:classificacaoFindByNameResponse" name="classificacaoFindByNameResponse"/> </wsdl:operation> <wsdl:operation name="classificacaoFindLikeName" parameterOrder="ds_clitr vl_inic vl_taman"> <wsdl:input message="intf:classificacaoFindLikeNameRequest" name="classificacaoFindLikeNameRequest"/> <wsdl:output message="intf:classificacaoFindLikeNameResponse" name="classificacaoFindLikeNameResponse"/> </wsdl:operation> <wsdl:operation name="classificacaoFindAllPage" parameterOrder="vl_inic vl_taman"> <wsdl:input message="intf:classificacaoFindAllPageRequest" name="classificacaoFindAllPageRequest"/> <wsdl:output message="intf:classificacaoFindAllPageResponse" name="classificacaoFindAllPageResponse"/> </wsdl:operation> <wsdl:operation name="classificacaoFindAll"> <wsdl:input message="intf:classificacaoFindAllRequest" name="classificacaoFindAllRequest"/> <wsdl:output message="intf:classificacaoFindAllResponse" name="classificacaoFindAllResponse"/> </wsdl:operation> <wsdl:operation name="classificacaoGet" parameterOrder="cd_clitr"> <wsdl:input message="intf:classificacaoGetRequest" name="classificacaoGetRequest"/> <wsdl:output message="intf:classificacaoGetResponse" name="classificacaoGetResponse"/> </wsdl:operation> <wsdl:operation name="classificacaoSaveOrUpdate" parameterOrder="vl_clitr"> <wsdl:input message="intf:classificacaoSaveOrUpdateRequest" name="classificacaoSaveOrUpdateRequest"/> <wsdl:output message="intf:classificacaoSaveOrUpdateResponse" name="classificacaoSaveOrUpdateResponse"/> </wsdl:operation> <wsdl:operation name="classificacaoRemove" parameterOrder="cd_clitr"> <wsdl:input message="intf:classificacaoRemoveRequest" name="classificacaoRemoveRequest"/> <wsdl:output message="intf:classificacaoRemoveResponse" name="classificacaoRemoveResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="BillingSoapBinding" type="intf:JaxRpcBilling"> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="classificacaoFindByName"> <wsdlsoap:operation soapAction="classificacaoFindByName" style="document" /> <wsdl:input name="classificacaoFindByNameRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="classificacaoFindByNameResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="classificacaoFindLikeName"> <wsdlsoap:operation soapAction="classificacaoFindLikeName" style="document" /> <wsdl:input name="classificacaoFindLikeNameRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="classificacaoFindLikeNameResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="classificacaoFindAllPage"> <wsdlsoap:operation soapAction="classificacaoFindAllPage" style="document" /> <wsdl:input name="classificacaoFindAllPageRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="classificacaoFindAllPageResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="classificacaoFindAll"> <wsdlsoap:operation soapAction="classificacaoFindAll" style="document" /> <wsdl:input name="classificacaoFindAllRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="classificacaoFindAllResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="classificacaoGet"> <wsdlsoap:operation soapAction="classificacaoGet" style="document" /> <wsdl:input name="classificacaoGetRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="classificacaoGetResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="classificacaoSaveOrUpdate"> <wsdlsoap:operation soapAction="classificacaoSaveOrUpdate" style="document" /> <wsdl:input name="classificacaoSaveOrUpdateRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="classificacaoSaveOrUpdateResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="classificacaoRemove"> <wsdlsoap:operation soapAction="classificacaoRemove" style="document" /> <wsdl:input name="classificacaoRemoveRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="classificacaoRemoveResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="JaxRpcBillingService"> <wsdl:port binding="intf:BillingSoapBinding" name="BillingService"> <wsdlsoap:address location="http://127.0.0.1:8081/BusinessModule/services/BillingService"/> </wsdl:port> </wsdl:service> </wsdl:definitions> -------------- this is my operation description and client invoke method ( http://rafb.net/paste/results/oWebev53.html ): // this is how operation is defined: oper = new org.apache.axis.description.OperationDesc(); oper.setName("classificacaoFindLikeName"); oper.addParameter(new javax.xml.namespace.QName("http://server.service.billing.polaris.com.br", "ds_clitr"), new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, org.apache.axis.description.ParameterDesc.IN, false, false); oper.addParameter(new javax.xml.namespace.QName("http://server.service.billing.polaris.com.br", "vl_inic"), new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"), int.class, org.apache.axis.description.ParameterDesc.IN, false, false); oper.addParameter(new javax.xml.namespace.QName("http://server.service.billing.polaris.com.br", "vl_taman"), new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"), int.class, org.apache.axis.description.ParameterDesc.IN, false, false); oper.setReturnType(new javax.xml.namespace.QName("http://stubs.service.billing.polaris.com.br", "ArrayOf_Clitr")); oper.setReturnClass(br.com.polaris.billing.service.stubs.ArrayOf_Clitr.class ); oper.setReturnQName(new javax.xml.namespace.QName("http://server.service.billing.polaris.com.br", "classificacaoFindLikeNameReturn")); oper.setStyle(org.apache.axis.enum.Style.DOCUMENT); oper.setUse(org.apache.axis.enum.Use.LITERAL); _operations[1] = oper; // this is the invoke method: public br.com.polaris.billing.service.stubs.ArrayOf_Clitr classificacaoFindLikeName(java.lang.String ds_clitr, int vl_inic, int vl_taman) throws java.rmi.RemoteException { if (super.cachedEndpoint == null) { throw new org.apache.axis.NoEndPointException(); } org.apache.axis.client.Call _call = createCall(); _call.setOperation(_operations[1]); _call.setUseSOAPAction(true); _call.setSOAPActionURI("classificacaoFindLikeName"); _call.setEncodingStyle(null); _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE); _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE); _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS); _call.setOperationName(new javax.xml.namespace.QName("", "classificacaoFindLikeName")); setRequestHeaders(_call); setAttachments(_call); java.lang.Object _resp = _call.invoke(new java.lang.Object[] {ds_clitr, new java.lang.Integer(vl_inic), new java.lang.Integer(vl_taman)}); if (_resp instanceof java.rmi.RemoteException) { throw (java.rmi.RemoteException)_resp; } else { extractAttachments(_call); try { return (br.com.polaris.billing.service.stubs.ArrayOf_Clitr) _resp; } catch (java.lang.Exception _exception) { return (br.com.polaris.billing.service.stubs.ArrayOf_Clitr) org.apache.axis.utils.JavaUtils.convert(_resp, br.com.polaris.billing.service.stubs.ArrayOf_Clitr.class); } } } -------- Any hint why this happens ? __________________________________ Do you Yahoo!? Yahoo! Mail - You care about security. So do we. http://promotions.yahoo.com/new_mail