Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
3.3.6
-
None
-
None
-
Unknown
Description
When using WS-Addressing, the wrong wsa:Action is default-generated in case of faults: The URI contains the name of the element used for the fault (/definition/types/schema/element/@name) instead of the fault name (/definition/porttype/operation/fault/@name).
Relevant chapter in the spec: https://www.w3.org/TR/ws-addr-metadata/#defactionwsdl11
The behaviour can be observed using the ws_addressing sample project, where the generated fault action is
<Action xmlns="http://www.w3.org/2005/08/addressing">http://apache.org/hello_world_soap_http/Greeter/pingMe/Fault/faultDetail</Action>
but should be
<Action xmlns="http://www.w3.org/2005/08/addressing">http://apache.org/hello_world_soap_http/Greeter/pingMe/Fault/pingMeFault</Action>
Explicitly setting the Action, i.e.
<wsdl:fault name="pingMeFault" message="tns:pingMeFault" wsam:Action="http://apache.org/hello_world_soap_http/Greeter/pingMe/Fault/pingMeFault" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"/>
doesn't influence this behaviour even though it leads to additional generated code:
@Action(fault = {@FaultAction(className = PingMeFault.class, value = "http://apache.org/hello_world_soap_http/Greeter/pingMe/Fault/pingMeFault")})