You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

WS-Addressing Configuration

In order to use WS-Addressing in a message exchange, two things are necessary:

  1. The addressing interceptors (org.apache.cxf.ws.addressing.MAPAggregator and org.apache.cxf.ws.addressing.soap.MAPCodec) need to be on the nbound and outbound interceptor chains, and
  2. The use of WS-Addressing is indicated by one of the following:
    1. A
      {http://www.w3.org/2005/02/addressing/wsdl}UsingAddressing
      element is attached to the wsdl:port, wsdl:service or wsdl:binding element.
    2. The (chosen alternative for the) effective policy of the message contains a
      Unknown macro: {http}
      Addressing assertion or a UsingAddressing assertion from either one of the following three namespaces: http://schemas.xmlsoap.org/ws/2004/08/addressing/policy, http://www.w3.org/2005/02/addressing/wsdl, http://www.w3.org/2006/05/addressing/wsdl.
    3. Property org.apache.cxf.ws.addressing.using in the message context is set to Boolean.TRUE.

Note that for 2.2 to take effect, CXF's policy engine must be enabled, see WS-Policy Framework Configuration.

Adding the Addressing Interceptors using the Addressing Feature

For an individual endpoint:

<beans ... xmlns:wsa="http://cxf.apache.org/ws/addressing" ...>
    <jaxws:endpoint ...>
        <jaxws:features>
            <wsa:addressing/>
        </jaxws:features>
    </bean>
</beans>

Adding the Addressing Interceptors Manually

org.apache.cxf.ws.addressing.MAPAggregator and org.apache.cxf.ws.addressing.soap.MAPCodec must be added to the interceptor chain for inbound and outbound messages and faults. On a global level, i.e. applicable to all client and server endpoints, this can be done as follows (see also [Bus Configuration]):


<bean id="mapAggregator" class="org.apache.cxf.ws.addressing.MAPAggregator"/>
<bean id="mapCodec" class="org.apache.cxf.ws.addressing.soap.MAPCodec"/>

<cxf:bus>
<cxf:inInterceptors>
<ref bean="mapAggregator"/>
<ref bean="mapCodec"/>
</cxf:inInterceptors>
<cxf:inFaultInterceptors>
<ref bean="mapAggregator"/>
<ref bean="mapCodec"/>
</cxf:inFaultInterceptors>
<cxf:outInterceptors>
<ref bean="mapAggregator"/>
<ref bean="mapCodec"/>
</cxf:outInterceptors>
<cxf:outFaultInterceptors>
<ref bean="mapAggregator"/>
<ref bean="mapCodec"/>
</cxf:outFaultInterceptors>
</cxf:bus>

Configuring the Addressing Interceptors

TBD

  • No labels