You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Sabiya Kazi (JIRA)" <ji...@apache.org> on 2015/12/18 19:53:46 UTC

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

    [ https://issues.apache.org/jira/browse/CXF-6605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15064460#comment-15064460 ] 

Sabiya Kazi commented on CXF-6605:
----------------------------------

Hi,
I tried similar use case,
But service invocation failed from SOAP-UI for metadata namespace "http://www.w3.org/2007/05/addressing/metadata".
However, it works fine for "http://www.w3.org/2007/02/addressing/metadata".

I just looked into cxf code and found that namespace was not added to QName types
and MAPAggregatorImpl.hasAddressingAssertion method was missing condition to check against MetadataConstants.ADDRESSING_ASSERTION_QNAME_0705.
I have fixed this issue and tested locally.
After this change, I was able to trigger service from SOAP-UI as well as CXF client.
I am attaching patch for this fix.



> 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
>              Labels: easyfix
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> 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)