...
- The addressing interceptors (org.apache.cxf.ws.addressing.MAPAggregator and org.apache.cxf.ws.addressing.soap.MAPCodec) need to be on the nbound inbound and outbound interceptor chains, and.
- The use of WS-Addressing is indicated by one of the following:
- A <UsingAddressing xmlns="http://www.w3.org/2005/02/addressing/wsdl"> element is attached to the wsdl<wsdl:portport>, wsdl<wsdl:service service> or wsdl<wsdl:binding binding> element.
- The (chosen alternative for the) effective policy of the message contains a <Addressing xmlns="http://www.w3.org/2007/02/addressing/metadata"> assertion or a UsingAddressing <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
.
- 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
Using the Addressing Feature
The addressing feature element is defined in namespace http://cxf.apache.org/ws/addressing. It supports two attributes:
Name | Value |
---|---|
allowDuplicates | A boolean that determines if duplicate MessageIDs are tolerated (default: true) |
usingAddressingAdvisory | A boolean that indicates if the presence of the <UsingAddressing> element in the wsdl is purely advisory, i.e. its absence doesn't prevent |
For example, to apply this feature to a JAX-WS server For an individual endpoint:
Code Block | ||||
---|---|---|---|---|
| ||||
<beans ... xmlns:wsa="http://cxf.apache.org/ws/addressing" ...>
<jaxws:endpoint ...>
<jaxws:features>
<wsa:addressing allowDuplicates="false"/>
</jaxws:features>
</bean>
</beans>
|
...
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 in the example below (see also Bus Configuration):. Note that, as allowDuplicates and usingAddressingAdvisory are actually properties of the MAPAggregator interceptor, they can also be set using Spring syntax.
Code Block | ||||
---|---|---|---|---|
| ||||
<bean id="mapAggregator" class="org.apache.cxf.ws.addressing.MAPAggregator" |
...
> <property name="allowDuplicates" value="false"/> </bean> <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
...
|