[jbossws-issues] [JBoss JIRA] Commented: (JBWS-1125) Support doc/lit with empty soap body elements

Jason T. Greene (JIRA) jira-events at jboss.com
Mon Nov 6 10:00:43 EST 2006


    [ http://jira.jboss.com/jira/browse/JBWS-1125?page=comments#action_12346309 ] 
            
Jason T. Greene commented on JBWS-1125:
---------------------------------------

The issue is that the wrapped convention requires that all parameters be wrapped with a single element that is a complex type whose children are a sequence of elements. So a noarg method  in the wrapped convention is not an empty message, but rather  an empty wrapper element. This is represented in WSDL as a message with 1 part that references an element that has a complex type with an empty sequence. In short, a wrapped message by definition requires a wrapping element.

Although there is no formal WS spec on this, the behavior I describe is consitent with .NET and with the JAX-RPC[1] and JAX-WS[2] specs. Also, its easier to implement because their is no ambiguity associated with a noarg method.

[1] JAX-RPC 1.1 Section 6.4.1

In order to qualify as using the "wrapper" style, an operation must fulfill the following
conditions:
* its input and output messages (if present) must contain exactly one part;
* such a part must refer to an element named after the operation;
* such an element (a wrapper) must be of a complex type defined using the
xsd:sequence compositor and containing only elements declarations.

[2] JAX-WS 2.0 Section 2.3.1.2

2.3.1.2 Wrapper Style
A WSDL operation qualifies for wrapper style mapping only if the following criteria are met:
(i) The operation's input and output messages (if present) each contain only a single part
(ii) The input message part refers to a global element declaration whose localname is equal to the operation
name
(iii) The output message part refers to a global element declaration
(iv) The elements referred to by the input and output message parts (henceforth referred to as wrapper
elements) are both complex types defined using the xsd:sequence compositor
(v) The wrapper elements only contain child elements, they must not contain other structures such as
wildcards (element or attribute), xsd:choice, substitution groups (element references are not permitted)
or attributes; furthermore, they must not be nillable.
} Conformance (Default mapping mode): Operations that do not meet the criteria aboveMUST be mapped
using non-wrapper style.

> Support doc/lit with empty soap body elements
> ---------------------------------------------
>
>                 Key: JBWS-1125
>                 URL: http://jira.jboss.com/jira/browse/JBWS-1125
>             Project: JBoss Web Services
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: jaxrpc
>    Affects Versions: jbossws-1.0.2
>            Reporter: Darran Lofthouse
>         Assigned To: Jason T. Greene
>            Priority: Minor
>             Fix For: jbossws-1.0.5
>
>
> There is some conflicting information in the different specifications regarding how to handle a method in an endpoint interface that does not take any parameters, at the moment we only support this type of method by using wrapped style.
> From the BasicProfile: -
> [Section 5.3.1]
> ....
> Use of wsdl:message elements with zero parts is permitted in Document styles to permit operations that can send or receive messages with empty soap:Bodys.
> From JSR-181
> JSR-181 which states:
> -  If the operation is marked @Oneway, it MUST have a void return value, a 
>   single non-header parameter marked as IN, and zero or more header   
>   parameters.
> -  If the operation is not marked @Oneway, it may have one of the following
>   forms:
> 	o A non-header parameter marked as IN, a non-header parameter marked  
>         as OUT, a void return value, and zero or more header parameters.
> 	o A single non-header parameters marked as IN_OUT, a void return 
>         value, and zero or more header parameters.
> 	o A single non-header parameter marked as IN, non-void return value 
>         and zero or more header parameters.
> This clearly requires there to be at least one parameter for a bare doc/lit message.
> From JAX-WS (Although not the current spec we implement does show how this has been clarified)
> 	In order to qualify for use of bare mapping mode a Java method must 
>       fulfill all of the following criteria:
> 	1. It must have at most one in or in/out non-header parameter.
> 	2. If it has a return type other than void it must have no in/out or 
> 	   out non-header parameters.
>       3. If it has a return type of void it must have at most one in/out or 
>          out non-header parameter.

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

        



More information about the jbossws-issues mailing list