[
https://issues.apache.org/jira/browse/AXIS2-4761?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rich Scheuerle resolved AXIS2-4761.
-----------------------------------
Resolution: Fixed
Thanks Lori
The code is contributed in revision 960205.
> Mustunderstand check fails for headers containing response parameters
> ---------------------------------------------------------------------
>
> Key: AXIS2-4761
> URL: https://issues.apache.org/jira/browse/AXIS2-4761
> Project: Axis2
> Issue Type: Bug
> Components: jaxws
> Reporter: Lori VanGulick
> Attachments: AXIS2-4761patch.txt
>
>
> The JAX-WS runtime may report the following error condition
> for SOAP headers on the response message that contain defined
> output parameters:
> .
> javax.xml.ws.WebServiceException: org.apache.axis2.AxisFault:
> Must Understand check failed for header http://someNamespaceURI
> : SomeHeaderName
> at
> org.apache.axis2.jaxws.ExceptionFactory.createWebServiceExceptio
> n(ExceptionFactory.java:175)
> at
> org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(
> ExceptionFactory.java:70)
> at
> .....
> Caused by: org.apache.axis2.AxisFault: Must Understand check
> failed for header http://someNamespaceURI : SomeHeaderName
> at
> org.apache.axis2.engine.AxisEngine.checkMustUnderstand(AxisEngin
> e.java:114)
> at
> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:178)
> at
> org.apache.axis2.description.OutInAxisOperationClient.handleResp
> onse(OutInAxisOperation.java:363)
> at
> .....
>
> Output parameters may be defined to be in SOAP headers either
> in the WSDL or by JAX-WS annotations.
>
> Here is an example of a WSDL binding which defines output
> parameter on a SOAP header:
> <output>
> <soap:header message="tns:MyResponse"
> part="MyResponseHeader" use="literal"/>
> <soap:body parts="MyResponse" use="literal"/>
> </output>
>
> Here is an example of a JAX-WS annotation which defines an
> output parameter on a SOAP header:
> @WebMethod
> public String echoString(
> @WebParam(mode=WebParam.Mode.OUT, header=true)
> Holder<String> MyResponseHeader)
>
> According to the JAX-WS spec, because these headers are defined for the
> operation, they should be automatically understood by the runtime...
> 10.2.1 SOAP mustUnderstand Processing ....
> 3. Identify the set of header qualified names (QNames) that the binding
> instance understands. This is
> the set of all header QNames that satisfy at least one of the following
> conditions:
> (a) that are mapped to method parameters in the service endpoint
> interface;
> Currently the code only checks for IN or INOUT parameters.
> I have created a patch to fix the problem. During OperationDescription
> creation I have added code to check for output and return parameters that are
> in headers and add them to the understoodQNames ArrayList. This is the list
> that is later referenced during mustunderstand checking. I have also
> modified a unittest to verify that output and return type headers are
> correctly added to the ArrayList.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]