WSDL generated for headers inconsistent with JSR 181 spec
---------------------------------------------------------

         Key: BEEHIVE-746
         URL: http://issues.apache.org/jira/browse/BEEHIVE-746
     Project: Beehive
        Type: Bug
  Components: Web Services (181)  
    Versions: V1Beta    
 Environment: Beehive SVN 170442
    Reporter: Jeremiah Johnson
 Assigned to: daryoush mehrtash 
     Fix For: V1


There is an example in the JSR 181 spec in section 5.4.1.3 and another in 
section 9.1.1 showing an annotated Web service and the expected resulting WSDL. 
 In both cases, a specific message element represents the header field and a 
specific message element represents the other parameters.  The WSM 
implementation takes a different route and maps all parameters, header or body, 
into the header message entry in the WSDL.  Is that clear?  :)

Here is the WSM version of the binding operation from the 5.4.1.3 example:
<wsdl:operation name="SecurePing">
  <wsdlsoap:operation soapAction=""/>
  <wsdl:input name="SecurePingRequest">
    <wsdlsoap:body namespace="http://www.openuri.org/jsr181/WebParamExample"; 
parts="Ping" use="literal"/>
    <wsdlsoap:header message="impl:SecurePingRequest" 
namespace="http://www.openuri.org/jsr181/WebParamExample"; part="SecHeader" 
use="literal"/>
  </wsdl:input>
</wsdl:operation>

And then the message element:
<wsdl:message name="SecurePingRequest">
  <wsdl:part name="SecHeader" type="impl:SecurityHeader"/>
  <wsdl:part name="Ping" type="impl:PingDocument"/>
</wsdl:message>

Here is the spec version of the binding operation:
<operation name="SecurePing">
  <soap:operation soapAction="http://openuri.org/SecurePing"/>
  <input>
    <soap:body parts="Ping" use="literal"/>
    <soap:header message="SecurePingHeaders" part="SecHeader"use="literal"/>
  </input>
</operation>

And the message elements:
<message name="SecurePing">
  <part name="Ping" type="tns:Ping"/>
</message>
<message name="SecurePingHeaders">
  <part name="SecHeader" element="tns:SecurityHeader"/>
</message>

I get the impression that the non-spec route was explicitly chosen, so the 
reasoning must be documented somewhere so that it may be validated; otherwise, 
the handling of headers needs to be changed.

Here is the wording from the spec about WebParam.header (section 7.2):
Parameters annotated with the @WebParam.header attribute map to SOAP headers 
instead of elements in the SOAP body.  Header parameters may appear as parts in 
the operation's input message, output message, or both depending on the value 
of the @WebParam.mode attribute.  Header parameters are included as soap:header 
elements in the appropriate wsdl:input and wsdl:output sections of the binding 
operation.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to