You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2003/05/21 12:10:38 UTC

DO NOT REPLY [Bug 20107] New: - WSDL generation incomplete/incorrect on services with java:MSG provider

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20107>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20107

WSDL generation incomplete/incorrect on services with java:MSG provider

           Summary: WSDL generation incomplete/incorrect on services with
                    java:MSG provider
           Product: Axis
           Version: 1.0-rc2
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: WSDL processing
        AssignedTo: axis-dev@ws.apache.org
        ReportedBy: rjelli@hotmail.com


The service presents a message-based style of interface, with the following 
signature:

public org.w3c.dom.Document handleOrder(org.w3c.dom.Document anOrder) {
...
}

It is deployed using the following wsdd descriptor:

 <service name="OrderingService" provider="java:MSG">
  <parameter name="className" value="com.tmme.dos.services.OrderingService"/>
  <parameter name="allowedMethods" value="handleOrder"/>
 </service>

The service can be accessed and works fine, but the generated WSDL file cannot 
be used by WSDL2Java to produce java code. When tested with the 1.0 release, it 
works fine. 
See here after the wsdl generated, and the WSDL2Java stack trace:

WSDL produced by 1.1 RC2:
-------------------------

  <?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions 
targetNamespace="http://localhost:8080/DOSWebServices/services/OrderingService" 
xmlns="http://schemas.xmlsoap.org/wsdl/" 
xmlns:apachesoap="http://xml.apache.org/xml-soap" 
xmlns:impl="http://localhost:8080/DOSWebServices/services/OrderingService" 
xmlns:intf="http://localhost:8080/DOSWebServices/services/OrderingService" 
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="handleOrder" type="xsd:anyType" /> 
  <element name="handleOrderReturn" type="xsd:anyType" /> 
  </schema>
  </wsdl:types>
- <wsdl:message name="handleOrderResponse">
  <wsdl:part element="handleOrderReturn" name="handleOrderReturn" /> 
  </wsdl:message>
- <wsdl:message name="handleOrderRequest">
  <wsdl:part element="handleOrder" name="part" /> 
  </wsdl:message>
- <wsdl:portType name="OrderingService">
- <wsdl:operation name="handleOrder">
  <wsdl:input message="intf:handleOrderRequest" name="handleOrderRequest" /> 
  <wsdl:output message="intf:handleOrderResponse" name="handleOrderResponse" /> 
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="OrderingServiceSoapBinding" type="intf:OrderingService">
  <wsdlsoap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http" /> 
- <wsdl:operation name="handleOrder">
  <wsdlsoap:operation soapAction="" /> 
- <wsdl:input name="handleOrderRequest">
  <wsdlsoap:body 
namespace="http://localhost:8080/DOSWebServices/services/OrderingService" 
use="literal" /> 
  </wsdl:input>
- <wsdl:output name="handleOrderResponse">
  <wsdlsoap:body 
namespace="http://localhost:8080/DOSWebServices/services/OrderingService" 
use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:service name="OrderingServiceService">
- <wsdl:port binding="intf:OrderingServiceSoapBinding" name="OrderingService">
  <wsdlsoap:address 
location="http://localhost:8080/DOSWebServices/services/OrderingService" /> 
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>

Stack trace of WSDL2Java:
-------------------------

C:\>java org.apache.axis.wsdl.WSDL2Java 
http://localhost:8080/DOSWebServices/services/OrderingService?wsdl

java.io.IOException: Element {http://schemas.xmlsoap.org/wsdl/}handleOrder is 
referenced but not def
ined.
        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:536)


WSDL produced by 1.1 RC2:
-------------------------

  <?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions 
targetNamespace="http://localhost:8080/DOSWebServices/services/OrderingService" 
xmlns="http://schemas.xmlsoap.org/wsdl/" 
xmlns:apachesoap="http://xml.apache.org/xml-soap" 
xmlns:impl="http://localhost:8080/DOSWebServices/services/OrderingService" 
xmlns:intf="http://localhost:8080/DOSWebServices/services/OrderingService" 
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 /> 
- <wsdl:message name="handleOrderResponse">
  <wsdl:part name="handleOrderReturn" type="xsd:anyType" /> 
  </wsdl:message>
  <wsdl:message name="handleOrderRequest" /> 
- <wsdl:portType name="OrderingService">
- <wsdl:operation name="handleOrder">
  <wsdl:input message="intf:handleOrderRequest" name="handleOrderRequest" /> 
  <wsdl:output message="intf:handleOrderResponse" name="handleOrderResponse" /> 
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="OrderingServiceSoapBinding" type="intf:OrderingService">
  <wsdlsoap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http" /> 
- <wsdl:operation name="handleOrder">
  <wsdlsoap:operation soapAction="" /> 
- <wsdl:input name="handleOrderRequest">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="http://localhost:8080/DOSWebServices/services/OrderingService" 
use="encoded" /> 
  </wsdl:input>
- <wsdl:output name="handleOrderResponse">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="http://localhost:8080/DOSWebServices/services/OrderingService" 
use="encoded" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:service name="OrderingServiceService">
- <wsdl:port binding="intf:OrderingServiceSoapBinding" name="OrderingService">
  <wsdlsoap:address 
location="http://localhost:8080/DOSWebServices/services/OrderingService" /> 
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>