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/01/15 22:14:21 UTC

DO NOT REPLY [Bug 16141] New: - Wrong return ParameterDesc returned during deserialization when using a split WSDL description

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=16141>.
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=16141

Wrong return ParameterDesc returned during deserialization when using a split WSDL description

           Summary: Wrong return ParameterDesc returned during
                    deserialization when using a split WSDL description
           Product: Axis
           Version: 1.1beta
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Serialization/Deserialization
        AssignedTo: axis-dev@xml.apache.org
        ReportedBy: jasnell@us.ibm.com


Ok, this one is a bit strange.  I'm in the process of tracking it down, but it 
hasn't been easy.  I'm using the attached WSDL documents to initialize a 
Service and Call object.  When using the single WSDL document 
(NasdaqQuotes.wsdl) everything works fine.  When using the split WSDL documents 
(NasdaqQuotes_Impl.wsdl and NasdaqQuotes_Interface.wsdl) I'm getting a "Bad 
Types" exception while deserializing the response message.

I traced the exception to the org.apache.axis.message.RPCHandler class and 
through a bit of debugging found the basic problem but I'm not yet sure what's 
causing the problem.

On line 215 in RPCHandler, the code attempts to get the method return 
ParameterDesc using a QName.  Now, the QName that is passed in is exactly what 
is expected given the WSDL portType and message descriptions 
("getPriceReturn"), but the ParameterDesc that is returned is the ParameterDesc 
for the input parameter ("symbol") ... (see the WSDL to understand where I'm 
getting these names).  So basically, the OperationDesc is returning the wrong 
ParameterDesc for the operations return value... but it ONLY happens when using 
a split WSDL description. Testing with a number of other split WSDL 
descriptions and I get the exact same problem.

<snip from="RPCHandler.java">
  [215] if (isResponse) {
  [216]   paramDesc = operation.getOutputParamByQName(qname);
  [217] } else {
  [218]   paramDesc = operation.getInputParamByQName(qname);
  [219] }
</snip>

Line [216] is the one where the problem occurs.