You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by ad...@bt.com on 2003/06/11 11:48:42 UTC

style="document" 1_1RC2

> I have deployed a very simple service using style="document".  The WSDL
> looks like this:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions
> targetNamespace="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/Simple
> Document" xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:apachesoap="http://xml.apache.org/xml-soap"
> xmlns:impl="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocum
> ent"
> xmlns:intf="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocum
> ent" 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:types><schema
> targetNamespace="" xmlns="http://www.w3.org/2001/XMLSchema"><import
> namespace="http://schemas.xmlsoap.org/soap/encoding/"/><element name="in"
> type="xsd:string"/><element name="reverseReturn"
> type="xsd:string"/></schema></wsdl:types>
>   <wsdl:message name="reverseResponse">
>     <wsdl:part element="reverseReturn" name="reverseReturn"/>
>   </wsdl:message>
>   <wsdl:message name="reverseRequest">
>     <wsdl:part element="in" name="in"/>
>   </wsdl:message>
>   <wsdl:portType name="Simple">
>     <wsdl:operation name="reverse" parameterOrder="in">
>       <wsdl:input message="intf:reverseRequest" name="reverseRequest"/>
>       <wsdl:output message="intf:reverseResponse" name="reverseResponse"/>
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="SimpleDocumentSoapBinding" type="intf:Simple">
>     <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>     <wsdl:operation name="reverse">
>       <wsdlsoap:operation soapAction=""/>
>       <wsdl:input name="reverseRequest">
>         <wsdlsoap:body
> namespace="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocume
> nt" use="literal"/>
>       </wsdl:input>
>       <wsdl:output name="reverseResponse">
>         <wsdlsoap:body
> namespace="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocume
> nt" use="literal"/>
>       </wsdl:output>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="SimpleService">
>     <wsdl:port binding="intf:SimpleDocumentSoapBinding"
> name="SimpleDocument">
>       <wsdlsoap:address
> location="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocumen
> t"/>
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> 
> When I try and generate client stubs for it using
> org.apache.axis.wsdl.WSDL2Java I get
> 
> Parsing XML file:
> http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocument?wsdl
> java.io.IOException: Element
> {http://schemas.xmlsoap.org/wsdl/}reverseReturn is referenced but not
> defined.
>     at
> org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(SymbolTable
> .java:527)
>     at
> org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:422)
>     at
> org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:408
> )
>     at
> org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:393
> )
>     at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:245)
>     at java.lang.Thread.run(Thread.java:484)
> 
> Is this a bug, or am I doing something wrong ?
> 
> TIA
> 
> Adrian

Re: style="document" 1_1RC2

Posted by Anne Thomas Manes <an...@manes.net>.
I suggest you get hold of a WSDL tool, such as Omniopera, XMLSpy, or the
Cape Clear WSDL editor to help you write your WSDL documents. Your errors
are caused by invalid Qnames.

You need to define a targetNamspace for the <schema> section. Otherwise you
have no way to reference the elements that you've defined. Your <types>
section should look like this:

<wsdl:types>
<schema
targetNamespace="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDo
cument"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="in" type="string"/>
<element name="reverseReturn" type="string"/>
</schema>
</wsdl:types>

Note: there is no reason to import the SOAP Encoding schema.And since the
XML Schema namespace is the default namespace, you don't need to prefix
"string" with "xsd:".

Then, in your <message> definitions, you must qualify your elements:

<wsdl:message name="reverseResponse">
    <wsdl:part element="intf:reverseReturn" name="reverseReturn"/>
</wsdl:message>
<wsdl:message name="reverseRequest">
   <wsdl:part element="intf:in" name="in"/>
</wsdl:message>

You also don't want to define the namespace attribute in your
<wsdlsoap:body> element. (The SOAP engine should automatically specify the
targetNamespace of the definition of the message element. The namespace
attribute should be used only for encoded messages, in which case you have
no predefined namespace, since you aren't using a literal schema.) So your
<wsdlsoap:body> elements should look like this:

<wsdlsoap:body use="literal"/>

Best regards,
Anne

----- Original Message -----
From: <ad...@bt.com>
To: <ax...@ws.apache.org>
Sent: Wednesday, June 11, 2003 5:48 AM
Subject: style="document" 1_1RC2


> > I have deployed a very simple service using style="document".  The WSDL
> > looks like this:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <wsdl:definitions
> >
targetNamespace="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/Simple
> > Document" xmlns="http://schemas.xmlsoap.org/wsdl/"
> > xmlns:apachesoap="http://xml.apache.org/xml-soap"
> >
xmlns:impl="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocum
> > ent"
> >
xmlns:intf="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocum
> > ent" 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:types><schema
> > targetNamespace="" xmlns="http://www.w3.org/2001/XMLSchema"><import
> > namespace="http://schemas.xmlsoap.org/soap/encoding/"/><element
name="in"
> > type="xsd:string"/><element name="reverseReturn"
> > type="xsd:string"/></schema></wsdl:types>
> >   <wsdl:message name="reverseResponse">
> >     <wsdl:part element="reverseReturn" name="reverseReturn"/>
> >   </wsdl:message>
> >   <wsdl:message name="reverseRequest">
> >     <wsdl:part element="in" name="in"/>
> >   </wsdl:message>
> >   <wsdl:portType name="Simple">
> >     <wsdl:operation name="reverse" parameterOrder="in">
> >       <wsdl:input message="intf:reverseRequest" name="reverseRequest"/>
> >       <wsdl:output message="intf:reverseResponse"
name="reverseResponse"/>
> >     </wsdl:operation>
> >   </wsdl:portType>
> >   <wsdl:binding name="SimpleDocumentSoapBinding" type="intf:Simple">
> >     <wsdlsoap:binding style="document"
> > transport="http://schemas.xmlsoap.org/soap/http"/>
> >     <wsdl:operation name="reverse">
> >       <wsdlsoap:operation soapAction=""/>
> >       <wsdl:input name="reverseRequest">
> >         <wsdlsoap:body
> >
namespace="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocume
> > nt" use="literal"/>
> >       </wsdl:input>
> >       <wsdl:output name="reverseResponse">
> >         <wsdlsoap:body
> >
namespace="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocume
> > nt" use="literal"/>
> >       </wsdl:output>
> >     </wsdl:operation>
> >   </wsdl:binding>
> >   <wsdl:service name="SimpleService">
> >     <wsdl:port binding="intf:SimpleDocumentSoapBinding"
> > name="SimpleDocument">
> >       <wsdlsoap:address
> >
location="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocumen
> > t"/>
> >     </wsdl:port>
> >   </wsdl:service>
> > </wsdl:definitions>
> >
> > When I try and generate client stubs for it using
> > org.apache.axis.wsdl.WSDL2Java I get
> >
> > Parsing XML file:
> > http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocument?wsdl
> > java.io.IOException: Element
> > {http://schemas.xmlsoap.org/wsdl/}reverseReturn is referenced but not
> > defined.
> >     at
> >
org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(SymbolTable
> > .java:527)
> >     at
> > org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:422)
> >     at
> >
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:408
> > )
> >     at
> >
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:393
> > )
> >     at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:245)
> >     at java.lang.Thread.run(Thread.java:484)
> >
> > Is this a bug, or am I doing something wrong ?
> >
> > TIA
> >
> > Adrian
>


Re: style="document" 1_1RC2

Posted by Davanum Srinivas <di...@yahoo.com>.
Adrian,

Can you please submit a bug report (as per http://ws.apache.org/axis/bugs.html)? With your sample
service and deploy.wsdd etc.

Thanks,
dims

--- adrian.p.smith@bt.com wrote:
> > I have deployed a very simple service using style="document".  The WSDL
> > looks like this:
> > 
> > <?xml version="1.0" encoding="UTF-8"?>
> > <wsdl:definitions
> > targetNamespace="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/Simple
> > Document" xmlns="http://schemas.xmlsoap.org/wsdl/"
> > xmlns:apachesoap="http://xml.apache.org/xml-soap"
> > xmlns:impl="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocum
> > ent"
> > xmlns:intf="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocum
> > ent" 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:types><schema
> > targetNamespace="" xmlns="http://www.w3.org/2001/XMLSchema"><import
> > namespace="http://schemas.xmlsoap.org/soap/encoding/"/><element name="in"
> > type="xsd:string"/><element name="reverseReturn"
> > type="xsd:string"/></schema></wsdl:types>
> >   <wsdl:message name="reverseResponse">
> >     <wsdl:part element="reverseReturn" name="reverseReturn"/>
> >   </wsdl:message>
> >   <wsdl:message name="reverseRequest">
> >     <wsdl:part element="in" name="in"/>
> >   </wsdl:message>
> >   <wsdl:portType name="Simple">
> >     <wsdl:operation name="reverse" parameterOrder="in">
> >       <wsdl:input message="intf:reverseRequest" name="reverseRequest"/>
> >       <wsdl:output message="intf:reverseResponse" name="reverseResponse"/>
> >     </wsdl:operation>
> >   </wsdl:portType>
> >   <wsdl:binding name="SimpleDocumentSoapBinding" type="intf:Simple">
> >     <wsdlsoap:binding style="document"
> > transport="http://schemas.xmlsoap.org/soap/http"/>
> >     <wsdl:operation name="reverse">
> >       <wsdlsoap:operation soapAction=""/>
> >       <wsdl:input name="reverseRequest">
> >         <wsdlsoap:body
> > namespace="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocume
> > nt" use="literal"/>
> >       </wsdl:input>
> >       <wsdl:output name="reverseResponse">
> >         <wsdlsoap:body
> > namespace="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocume
> > nt" use="literal"/>
> >       </wsdl:output>
> >     </wsdl:operation>
> >   </wsdl:binding>
> >   <wsdl:service name="SimpleService">
> >     <wsdl:port binding="intf:SimpleDocumentSoapBinding"
> > name="SimpleDocument">
> >       <wsdlsoap:address
> > location="http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocumen
> > t"/>
> >     </wsdl:port>
> >   </wsdl:service>
> > </wsdl:definitions>
> > 
> > When I try and generate client stubs for it using
> > org.apache.axis.wsdl.WSDL2Java I get
> > 
> > Parsing XML file:
> > http://cpwsdd.devenv1.bt.co.uk:63024/axis/services/SimpleDocument?wsdl
> > java.io.IOException: Element
> > {http://schemas.xmlsoap.org/wsdl/}reverseReturn is referenced but not
> > defined.
> >     at
> > org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(SymbolTable
> > .java:527)
> >     at
> > org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:422)
> >     at
> > org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:408
> > )
> >     at
> > org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:393
> > )
> >     at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:245)
> >     at java.lang.Thread.run(Thread.java:484)
> > 
> > Is this a bug, or am I doing something wrong ?
> > 
> > TIA
> > 
> > Adrian


=====
Davanum Srinivas - http://webservices.apache.org/~dims/

__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com