Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

WS-Addressing

...

Configuration

...

In

...

order

...

to

...

use

...

WS-Addressing

...

in

...

a

...

message

...

exchange,

...

two

...

things

...

are

...

necessary:

...

  1. The

...

  1. addressing

...

  1. interceptors

...

  1. (org.apache.cxf.ws.addressing.MAPAggregator

...

  1. and

...

  1. org.apache.cxf.ws.addressing.soap.MAPCodec)

...

  1. need

...

  1. to

...

  1. be

...

  1. on

...

  1. the

...

  1. inbound and

...

  1. outbound

...

  1. interceptor

...

  1. chains.
  2. The use of WS-Addressing

...

  1. is

...

  1. indicated

...

  1. by

...

  1. one

...

  1. of

...

  1. the

...

  1. following:

...

    1. A <UsingAddressing xmlns="http://www.w3.org/2005/02/addressing/wsdl

...

    1. "> element

...

    1. is

...

    1. attached

...

    1. to

...

    1. the

...

    1. <wsdl:

...

    1. port>,

...

    1. <wsdl:

...

    1. service> or

...

    1. <wsdl:

...

    1. binding> element.

...

    1. The

...

    1. (chosen

...

    1. alternative

...

    1. for

...

    1. the)

...

    1. effective

...

    1. policy

...

    1. of

...

    1. the

...

    1. message

...

    1. contains

...

    1. a <Addressing xmlns="http://www.w3.org/2007/02/addressing/metadata

...

    1. "> assertion

...

    1. or

...

    1. a

...

    1. <UsingAddressing> assertion

...

    1. from

...

    1. either

...

    1. one

...

    1. of

...

    1. the

...

    1. following

...

    1. three

...

    1. namespaces:

...

    1. http://schemas.xmlsoap.org/ws/2004/08/addressing/policy,

...

    1. http://www.w3.org/2005/02/addressing/wsdl,

...

    1. http://www.w3.org/2006/05/addressing/wsdl.

...

    1. Property

...

    1. org.apache.cxf.ws.addressing.using

...

    1. in

...

    1. the

...

    1. message

...

    1. context

...

    1. is

...

    1. set

...

    1. to

...

    1. Boolean.TRUE.

...

Note

...

that

...

for

...

2.2

...

to

...

take

...

effect,

...

CXF's

...

policy

...

engine

...

must

...

be

...

enabled,

...

see

...

WS-Policy

...

Framework Configuration.

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 the encoding of WS-A headers. This is especially useful to enable WS-Addressing in the java-first case, where you have no wsdl and hence none of the conditions in 2.1 and 2.2 will be met.

For example, to apply this feature to a JAX-WS server endpoint:

Code Block
xml
xml
 Configuration|WSPConfiguration].

h2. Adding the Addressing Interceptors using the Addressing Feature

For an individual endpoint:

{code:xml}
<beans ... xmlns:wsa="http://cxf.apache.org/ws/addressing" ...>
    <jaxws:endpoint ...>
        <jaxws:features>
            <wsa:addressing allowDuplicates="false"/>
        </jaxws:features>
    </bean>
</beans>
{code}

h2. Adding the Addressing Interceptors Manually

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 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
xml
xml
|Bus-Configuration]):

{code:xml}
<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>

h2. Configuring the Addressing Interceptors

TBD