You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Stefan Kuhn (JIRA)" <ji...@apache.org> on 2015/09/23 17:36:04 UTC

[jira] [Created] (CXF-6605) WS-Addressing 07/05 not working

Stefan Kuhn created CXF-6605:
--------------------------------

             Summary: WS-Addressing 07/05 not working
                 Key: CXF-6605
                 URL: https://issues.apache.org/jira/browse/CXF-6605
             Project: CXF
          Issue Type: Bug
          Components: WS-* Components
    Affects Versions: 3.1.2
         Environment: Win 8, current Spring Boot, Embedded Tomcat
            Reporter: Stefan Kuhn


using 
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" instead of 
xmlns:wsam="http://www.w3.org/2007/02/addressing/metadata"
invalidates valid WS requests.

e.g. in my usecase, the WSDL uses
    <wsp:Policy wss:Id="WSAddressing_policy">
         <wsam:Addressing>
            <wsp:policy/>
        </wsam:Addressing> 
    </wsp:Policy>
and
 <wsdl:binding name="OrderManagementServiceOutboundBinding" type="tns:OrderManagementServiceOutboundPortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsp:PolicyReference URI="#WSAddressing_policy"/>

Springs CXF configuration uses the policy interceptor with
    <cxf:bus>
        <cxf:features>
        	<p:policies ignoreUnknownAssertions="true"/>
        	<cxf:logging/>
        </cxf:features>
    </cxf:bus>
and
	<jaxws:endpoint id="outboundService"
		publish="true"
		implementor="#outbound" 
		address="/OrderManagementServiceOutbound"
		serviceName="s:OrderManagementServiceOutbound" 
		endpointName="s:OrderManagementResponsePort"
		wsdlLocation="/wsdl/OrderManagementServiceOutbound.wsdl"
		xmlns:s="urn:OrderManagementServiceOutbound">
		
		<jaxws:properties>
			<entry key="faultStackTraceEnabled" value="${ws.stacktrace-enabled:false}" />
			<entry key="exceptionMessageCauseEnabled" value="${ws.exception-message-cause-enabled:false}" />
			<entry key="schema-validation-enabled" value="true" />
		</jaxws:properties>
		
		<jaxws:features>
			<cxf:logging />
			<wsa:addressing /> 
		</jaxws:features>
	</jaxws:endpoint>

I've used CXF and SOAP-UI as a client for the server application, both successful for 2007/02, both unsuccessful for 2007/05.

CXF replies to the same request with 
<soap:Fault>
         <faultcode xmlns:ns1="http://www.w3.org/2005/08/addressing">ns1:MessageAddressingHeaderRequired</faultcode>
         <faultstring>A required header representing a Message Addressing Property is not present</faultstring>
      </soap:Fault>

It seems to me, that the qualified name of ADDRESSING_ASSERTION_QNAME_0705 is not added to the QName[] types in org.apache.cxf.ws.addressing.impl.MAPAggregatorImpl.assertAddressing(Message, EndpointReferenceType, EndpointReferenceType), Line 334.


  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)