users@jax-rpc.java.net

Re: wscompile error

From: Anne Thomas Manes <atmanes_at_gmail.com>
Date: Thu, 28 Apr 2005 09:13:25 -0400

You're getting the error because your portType says that "name_hello2"
is an input parameter for the hello2 operation:

   <wsdl:operation name="hello2" parameterOrder="name_hello2">

but your binding says you have no body parts in hello2:

   <wsdl:operation name="hello2">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="hello2Request">
            <wsdlsoap:body namespace="http://rpc.webparam.tests.ts.bea.com"
                   parts="" use="literal"/>

If the "name_hello2" element is supposed to go in the header, then
your portType should be defined with no parameterOrder attribute:

   <wsdl:operation name="hello2">

Anne

On 4/27/05, Xibin Zeng <xzeng_at_bea.com> wrote:
>
>
>
> Hi
>
>
>
> I'm getting an error from wscompile on parsing a wsdl. The wsdl is generated
> through AXIS for a webservice that it hosts:
>
>
>
> I'm pasting both the wsdl and the wscompile error here. Is this a bug with
> wscompile? I can open the wsdl from XMLSpy and generate a soap request based
> on it. However, it fails when I called wscompile to generate the stub
> classes.
>
>
>
> Thanks
>
> Xibin Zeng
>
>
>
> --------------------------------------- wsdl
> -----------------------------------
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <wsdl:definitions
> targetNamespace="http://rpc.webparam.tests.ts.bea.com"
> xmlns:apachesoap="http://xml.apache.org/xml-soap"
> xmlns:impl="http://rpc.webparam.tests.ts.bea.com"
> xmlns:intf="http://rpc.webparam.tests.ts.bea.com"
> 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.2RC3
>
> Built on Feb 28, 2005 (10:15:14 EST)-->
>
> <wsdl:types>
>
> <schema
> targetNamespace="http://rpc.webparam.tests.ts.bea.com"
> xmlns="http://www.w3.org/2001/XMLSchema">
>
> <import
> namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
>
> <complexType name="Name">
>
> <sequence>
>
> <element name="firstName" nillable="true" type="xsd:string"/>
>
> <element name="lastName" nillable="true" type="xsd:string"/>
>
> </sequence>
>
> </complexType>
>
> </schema>
>
> </wsdl:types>
>
>
>
> <wsdl:message name="hello4Response">
>
>
>
> <wsdl:part name="result" type="xsd:int"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello2Request">
>
>
>
> <wsdl:part name="name_hello2" type="xsd:string"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello7Response">
>
>
>
> <wsdl:part name="nameholder_hello7" type="impl:Name"/>
>
>
>
> <wsdl:part name="nameholder2_hello7" type="impl:Name"/>
>
>
>
> <wsdl:part name="result" type="xsd:int"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello6Request">
>
>
>
> <wsdl:part name="name_hello6" type="impl:Name"/>
>
>
>
> <wsdl:part name="name2_hello6" type="impl:Name"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="helloResponse">
>
>
>
> <wsdl:part name="result" type="xsd:int"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello8Response">
>
>
>
> <wsdl:part name="result" type="xsd:int"/>
>
>
>
> <wsdl:part name="nameholder_hello8" type="impl:Name"/>
>
>
>
> <wsdl:part name="nameholder2_hello8" type="impl:Name"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello5Response">
>
>
>
> <wsdl:part name="result" type="xsd:int"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello3Response">
>
>
>
> <wsdl:part name="result" type="xsd:int"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello4Request">
>
>
>
> <wsdl:part name="firstname_hello4" type="xsd:string"/>
>
>
>
> <wsdl:part name="lastname_hello4" type="xsd:string"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello6Response">
>
>
>
> <wsdl:part name="result" type="xsd:int"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="helloRequest">
>
>
>
> <wsdl:part name="name" type="impl:Name"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello5Request">
>
>
>
> <wsdl:part name="name_hello5" type="xsd:string"/>
>
>
>
> <wsdl:part name="fullName" type="impl:Name"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello3Request">
>
>
>
> <wsdl:part name="firstname_hello3" type="xsd:string"/>
>
>
>
> <wsdl:part name="lastName" type="xsd:string"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello7Request">
>
>
>
> <wsdl:part name="nameholder2_hello7" type="impl:Name"/>
>
>
>
> <wsdl:part name="name" type="impl:Name"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello8Request">
>
>
>
> <wsdl:part name="name" type="impl:Name"/>
>
>
>
> <wsdl:part name="nameholder2_hello8" type="impl:Name"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:message name="hello2Response">
>
>
>
> <wsdl:part name="result" type="xsd:int"/>
>
>
>
> </wsdl:message>
>
>
>
> <wsdl:portType name="modeRpcWebParamWebService">
>
>
>
> <wsdl:operation name="hello" parameterOrder="name">
>
>
>
> <wsdl:input message="impl:helloRequest" name="helloRequest"/>
>
>
>
> <wsdl:output message="impl:helloResponse" name="helloResponse"/>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello2" parameterOrder="name_hello2">
>
>
>
> <wsdl:input message="impl:hello2Request" name="hello2Request"/>
>
>
>
> <wsdl:output message="impl:hello2Response" name="hello2Response"/>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello3"
> parameterOrder="firstname_hello3 lastName">
>
>
>
> <wsdl:input message="impl:hello3Request" name="hello3Request"/>
>
>
>
> <wsdl:output message="impl:hello3Response" name="hello3Response"/>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello4"
> parameterOrder="firstname_hello4 lastname_hello4">
>
>
>
> <wsdl:input message="impl:hello4Request" name="hello4Request"/>
>
>
>
> <wsdl:output message="impl:hello4Response" name="hello4Response"/>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello5" parameterOrder="fullName name_hello5">
>
>
>
> <wsdl:input message="impl:hello5Request" name="hello5Request"/>
>
>
>
> <wsdl:output message="impl:hello5Response" name="hello5Response"/>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello6" parameterOrder="name_hello6
> name2_hello6">
>
>
>
> <wsdl:input message="impl:hello6Request" name="hello6Request"/>
>
>
>
> <wsdl:output message="impl:hello6Response" name="hello6Response"/>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello7" parameterOrder="name nameholder_hello7
> nameholder2_hello7">
>
>
>
> <wsdl:input message="impl:hello7Request" name="hello7Request"/>
>
>
>
> <wsdl:output message="impl:hello7Response" name="hello7Response"/>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello8" parameterOrder="name nameholder_hello8
> nameholder2_hello8">
>
>
>
> <wsdl:input message="impl:hello8Request" name="hello8Request"/>
>
>
>
> <wsdl:output message="impl:hello8Response" name="hello8Response"/>
>
>
>
> </wsdl:operation>
>
>
>
> </wsdl:portType>
>
>
>
> <wsdl:binding
> name="modeRpcWebParamWebServiceSoapBinding"
> type="impl:modeRpcWebParamWebService">
>
>
>
> <wsdlsoap:binding style="rpc"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>
>
>
> <wsdl:operation name="hello">
>
>
>
> <wsdlsoap:operation soapAction=""/>
>
>
>
> <wsdl:input name="helloRequest">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> use="literal"/>
>
>
>
> </wsdl:input>
>
>
>
> <wsdl:output name="helloResponse">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> use="literal"/>
>
>
>
> </wsdl:output>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello2">
>
>
>
> <wsdlsoap:operation soapAction=""/>
>
>
>
> <wsdl:input name="hello2Request">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com" parts=""
> use="literal"/>
>
>
>
> <wsdlsoap:header message="impl:hello2Request"
> namespace="http://rpc.webparam.tests.ts.bea.com"
> part="name_hello2" use="literal">
>
>
>
> </wsdlsoap:header>
>
>
>
> </wsdl:input>
>
>
>
> <wsdl:output name="hello2Response">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> use="literal"/>
>
>
>
> </wsdl:output>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello3">
>
>
>
> <wsdlsoap:operation soapAction=""/>
>
>
>
> <wsdl:input name="hello3Request">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> parts="lastName" use="literal"/>
>
>
>
> <wsdlsoap:header message="impl:hello3Request"
> namespace="http://rpc.webparam.tests.ts.bea.com"
> part="firstname_hello3" use="literal">
>
>
>
> </wsdlsoap:header>
>
>
>
> </wsdl:input>
>
>
>
> <wsdl:output name="hello3Response">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> use="literal"/>
>
>
>
> </wsdl:output>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello4">
>
>
>
> <wsdlsoap:operation soapAction=""/>
>
>
>
> <wsdl:input name="hello4Request">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com" parts=""
> use="literal"/>
>
>
>
> <wsdlsoap:header message="impl:hello4Request"
> namespace="http://rpc.webparam.tests.ts.bea.com"
> part="firstname_hello4" use="literal">
>
>
>
> </wsdlsoap:header>
>
>
>
> <wsdlsoap:header message="impl:hello4Request"
> namespace="http://rpc.webparam.tests.ts.bea.com"
> part="lastname_hello4" use="literal">
>
>
>
> </wsdlsoap:header>
>
>
>
> </wsdl:input>
>
>
>
> <wsdl:output name="hello4Response">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> use="literal"/>
>
>
>
> </wsdl:output>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello5">
>
>
>
> <wsdlsoap:operation soapAction=""/>
>
>
>
> <wsdl:input name="hello5Request">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> parts="fullName" use="literal"/>
>
>
>
> <wsdlsoap:header message="impl:hello5Request"
> namespace="http://rpc.webparam.tests.ts.bea.com"
> part="name_hello5" use="literal">
>
>
>
> </wsdlsoap:header>
>
>
>
> </wsdl:input>
>
>
>
> <wsdl:output name="hello5Response">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> use="literal"/>
>
>
>
> </wsdl:output>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello6">
>
>
>
> <wsdlsoap:operation soapAction=""/>
>
>
>
> <wsdl:input name="hello6Request">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com" parts=""
> use="literal"/>
>
>
>
> <wsdlsoap:header message="impl:hello6Request"
> namespace="http://rpc.webparam.tests.ts.bea.com"
> part="name_hello6" use="literal">
>
>
>
> </wsdlsoap:header>
>
>
>
> <wsdlsoap:header message="impl:hello6Request"
> namespace="http://rpc.webparam.tests.ts.bea.com"
> part="name2_hello6" use="literal">
>
>
>
> </wsdlsoap:header>
>
>
>
> </wsdl:input>
>
>
>
> <wsdl:output name="hello6Response">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> use="literal"/>
>
>
>
> </wsdl:output>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello7">
>
>
>
> <wsdlsoap:operation soapAction=""/>
>
>
>
> <wsdl:input name="hello7Request">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> parts="name" use="literal"/>
>
>
>
> <wsdlsoap:header message="impl:hello7Request"
> namespace="http://rpc.webparam.tests.ts.bea.com"
> part="nameholder2_hello7" use="literal">
>
>
>
> </wsdlsoap:header>
>
>
>
> </wsdl:input>
>
>
>
> <wsdl:output name="hello7Response">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> parts="result" use="literal"/>
>
>
>
> <wsdlsoap:header message="impl:hello7Response"
> namespace="http://rpc.webparam.tests.ts.bea.com"
> part="nameholder_hello7" use="literal">
>
>
>
> </wsdlsoap:header>
>
>
>
> <wsdlsoap:header message="impl:hello7Response"
> namespace="http://rpc.webparam.tests.ts.bea.com"
> part="nameholder2_hello7" use="literal">
>
>
>
> </wsdlsoap:header>
>
>
>
> </wsdl:output>
>
>
>
> </wsdl:operation>
>
>
>
> <wsdl:operation name="hello8">
>
>
>
> <wsdlsoap:operation soapAction=""/>
>
>
>
> <wsdl:input name="hello8Request">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> use="literal"/>
>
>
>
> </wsdl:input>
>
>
>
> <wsdl:output name="hello8Response">
>
>
>
> <wsdlsoap:body
> namespace="http://rpc.webparam.tests.ts.bea.com"
> use="literal"/>
>
>
>
> </wsdl:output>
>
>
>
> </wsdl:operation>
>
>
>
> </wsdl:binding>
>
>
>
> <wsdl:service name="modeRpcWebParamWebServiceService">
>
>
>
> <wsdl:port
> binding="impl:modeRpcWebParamWebServiceSoapBinding"
> name="modeRpcWebParamWebService">
>
>
>
> <wsdlsoap:address
> location="http://localhost:8080/jsr181-tck/com/bea/ts/tests/webparam/rpc/modeRpcWebParamWebServiceService.jws"/>
>
>
>
> </wsdl:port>
>
>
>
> </wsdl:service>
>
>
>
> </wsdl:definitions>
>
>
>
>
>
> ---------------------------- Exception output
> ----------------------------------------
>
>
>
> [wscompile] "name_hello2" specified in the parameterOrder attribute of
> message "hello2" is
>
> not a valid part of the message.
>
> [wscompile] at
> com.sun.xml.rpc.processor.modeler.wsdl.WSDLModelerBase.processParameter
>
> Order(WSDLModelerBase.java:2101)
>
> [wscompile] at
> com.sun.xml.rpc.processor.modeler.wsdl.WSDLModelerBase.processSOAPOpera
>
> tionRPCLiteralStyle(WSDLModelerBase.java:2316)
>
> [wscompile] at
> com.sun.xml.rpc.processor.modeler.wsdl.WSDLModelerBase.processSOAPOpera
>
> tion(WSDLModelerBase.java:905)
>
> [wscompile] at
> com.sun.xml.rpc.processor.modeler.wsdl.WSDLModelerBase.processPort(WSDL
>
> ModelerBase.java:763)
>
> [wscompile] at
> com.sun.xml.rpc.processor.modeler.wsdl.WSDLModelerBase.processService(W
>
> SDLModelerBase.java:519)
>
> [wscompile] at
> com.sun.xml.rpc.processor.modeler.wsdl.WSDLModelerBase.internalBuildMod
>
> el(WSDLModelerBase.java:354)
>
> [wscompile] at
> com.sun.xml.rpc.processor.modeler.wsdl.WSDLModelerBase.buildModel(WSDLM
>
> odelerBase.java:238)
>
> [wscompile] at
> com.sun.xml.rpc.processor.config.ModelInfo.buildModel(ModelInfo.java:88
>
> )
>
> [wscompile] at
> com.sun.xml.rpc.processor.Processor.runModeler(Processor.java:63)
>
> [wscompile] at
> com.sun.xml.rpc.tools.wscompile.CompileTool.run(CompileTool.java:714)
>
> [wscompile] at
> com.sun.xml.rpc.util.ToolBase.run(ToolBase.java:43)
>
> [wscompile] at
> com.sun.xml.rpc.tools.wscompile.Main.main(Main.java:22)
>
> [wscompile] error: "name_hello2" specified in the parameterOrder attribute
> of message "hel
>
> lo2" is not a valid part of the message.
>
> [wscompile] Command invoked: wscompile C:\jdk1.5.0_02\jre\bin\java.exe
> -classpath C:\jdk1.
>
> 5.0_02\lib\tools.jar;D:\Sun\jwsdp-1.5\jwsdp-shared\lib\mail.jar;D:\Sun\jwsdp-1.5\jwsdp-sha
>
> red\lib\activation.jar;D:\Sun\jwsdp-1.5\jaxp\lib\endorsed\dom.jar;D:\Sun\jwsdp-1.5\jaxp\li
>
> b\endorsed\sax.jar;D:\Sun\jwsdp-1.5\jaxp\lib\endorsed\xalan.jar;D:\Sun\jwsdp-1.5\jaxp\lib\
>
> endorsed\xercesImpl.jar;D:\Sun\jwsdp-1.5\jaxrpc\lib\jaxrpc-api.jar;D:\Sun\jwsdp-1.5\jaxrpc
>
> \lib\jaxrpc-impl.jar;D:\Sun\jwsdp-1.5\jaxrpc\lib\jaxrpc-spi.jar;D:\Sun\jwsdp-1.5\saaj\lib\
>
> saaj-api.jar;D:\Sun\jwsdp-1.5\saaj\lib\saaj-impl.jar;D:\Sun\jwsdp-1.5\jwsdp-shared\lib\rel
>
> axngDatatype.jar;D:\Sun\jwsdp-1.5\jwsdp-shared\lib\xsdlib.jar;D:\Sun\jwsdp-1.5\jwsdp-share
>
> d\lib\jax-qname.jar;D:\Sun\jwsdp-1.5\apache-ant\lib\ant.jar;D:\dev\standards\jsr181\tck\li
>
> b\javatest.jar;D:\dev\standards\jsr181\tck\lib\sigtestdev.jar;D:\dev\standards\jsr181\tck\
>
> lib\sigtest.jar com.sun.xml.rpc.tools.wscompile.Main -d
> D:\Development\Beehive\wsm\test\js
>
> r181\clientclasses "-features:explicitcontext, useonewayoperations"
> -gen:client -keep -Xpr
>
> intstacktrace
> D:\Development\Beehive\wsm\test\jsr181\clientclasses\config-template.xml
>
>
>
>
>
>
>
>