cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache CXF Documentation > WSRMConfiguration
Date Thu, 10 Jan 2013 11:39:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/9/1/_/styles/combined.css?spaceKey=CXF20DOC&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/CXF20DOC/WSRMConfiguration">WSRMConfiguration</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~coheigea@apache.org">Colm
O hEigeartaigh</a>
    </h4>
        <br/>
                         <h4>Changes (16)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >Instead of attaching the PolicyReference
attached to the wsdl:port element, you can also specify it as a child element of the policies
features, e.g. for the server endpoint: <br>{code:xml} <br></td></tr>
            <tr><td class="diff-changed-lines" >&lt;wsp:Policy <span class="diff-changed-words">wsu:Id=&quot;<span
class="diff-deleted-chars"style="color:#999;background-color:#fdd;text-decoration:line-through;">=&quot;</span>RM&quot;</span>
xmlns:wsp=&quot;http://www.w3.org/2006/07/ws-policy&quot; ...&gt; <br></td></tr>
            <tr><td class="diff-unchanged" >&lt;/wsp:Policy&gt; <br>
<br>&lt;jaxws:endpoint ...&gt; <br>    &lt;jaxws:features&gt;
<br></td></tr>
            <tr><td class="diff-unchanged" >        &lt;p:policies&gt;
            &lt;wsp:PolicyReference URI=&quot;#RM&quot; xmlns:wsp=&quot;http://www.w3.org/2006/07/ws-policy&quot;/&gt;
        &lt;/p:policies&gt;
    &lt;/jaxws:features&gt; <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">&lt;/jaxws:endpoint&gt;
<br></td></tr>
            <tr><td class="diff-unchanged" >{code} <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >{code:xml} <br>&lt;bean
id=&quot;rmLogicalOut&quot; class=&quot;org.apache.cxf.ws.rm.RMOutInterceptor&quot;&gt;
<br></td></tr>
            <tr><td class="diff-unchanged" >    &lt;property name=&quot;bus&quot;
ref=&quot;cxf&quot;/&gt;
&lt;/bean&gt;
&lt;bean id=&quot;rmLogicalIn&quot; class=&quot;org.apache.cxf.ws.rm.RMInInterceptor&quot;&gt;
    &lt;property name=&quot;bus&quot; ref=&quot;cxf&quot;/&gt;
&lt;/bean&gt;
&lt;bean id=&quot;rmCodec&quot; class=&quot;org.apache.cxf.ws.rm.soap.RMSoapInterceptor&quot;/&gt;
<br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">
       &lt;ref bean=&quot;rmLogicalIn&quot;/&gt; <br></td></tr>
            <tr><td class="diff-unchanged" >&lt;cxf:bus ...&gt;
    &lt;cxf:inInterceptors&gt; <br></td></tr>
            <tr><td class="diff-changed-lines" >&lt;ref <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">bean=&quot;rmLogicalIn&quot;/&gt;</span>
<span class="diff-added-words"style="background-color: #dfd;">bean=&quot;rmCodec&quot;/&gt;</span>
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">
   &lt;/cxf:inInterceptors&gt; <br>    &lt;cxf:inFaultInterceptors&gt;
<br></td></tr>
            <tr><td class="diff-changed-lines" >&lt;ref <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">bean=&quot;rmCodec&quot;/&gt;</span>
<span class="diff-added-words"style="background-color: #dfd;">bean=&quot;rmLogicalIn&quot;/&gt;</span>
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">
       &lt;ref bean=&quot;rmCodec&quot;/&gt; <br></td></tr>
            <tr><td class="diff-changed-lines" ><span class="diff-changed-words">&lt;/cxf:in<span
class="diff-added-chars"style="background-color: #dfd;">Fault</span>Interceptors&gt;</span>
<br></td></tr>
            <tr><td class="diff-changed-lines" ><span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">&lt;cxf:inFaultInterceptors&gt;</span>
<span class="diff-added-words"style="background-color: #dfd;">&lt;cxf:outInterceptors&gt;</span>
<br></td></tr>
            <tr><td class="diff-changed-lines" >&lt;ref <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">bean=&quot;rmLogicalIn&quot;/&gt;</span>
<span class="diff-added-words"style="background-color: #dfd;">bean=&quot;rmLogicalOut&quot;/&gt;</span>
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">
       &lt;ref bean=&quot;rmCodec&quot;/&gt; <br>    &lt;/cxf:outInterceptors&gt;
<br>    &lt;cxf:outFaultInterceptors&gt; <br></td></tr>
            <tr><td class="diff-changed-lines" >&lt;ref <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">bean=&quot;rmCodec&quot;/&gt;</span>
<span class="diff-added-words"style="background-color: #dfd;">bean=&quot;rmLogicalOut&quot;/&gt;</span>
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">
       &lt;ref bean=&quot;rmCodec&quot;/&gt; <br></td></tr>
            <tr><td class="diff-changed-lines" ><span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">&lt;/cxf:inFaultInterceptors&gt;</span>
<span class="diff-added-words"style="background-color: #dfd;">&lt;cxf:outFaultInterceptors&gt;</span>
<br></td></tr>
            <tr><td class="diff-changed-lines" ><span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">&lt;cxf:outInterceptors&gt;</span>
<span class="diff-added-words"style="background-color: #dfd;">&lt;/cxf:bus&gt;</span>
<br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">
           &lt;ref bean=&quot;rmLogicalOut&quot;/&gt; <br>         
  &lt;ref bean=&quot;rmCodec&quot;/&gt; <br>        &lt;/cxf:outInterceptors&gt;
<br>        &lt;cxf:outFaultInterceptors&gt; <br>            &lt;ref
bean=&quot;rmLogicalOut&quot;/&gt; <br>            &lt;ref bean=&quot;rmCodec&quot;/&gt;
<br>        &lt;cxf:outFaultInterceptors&gt; <br>    &lt;/cxf:bus&gt;
<br></td></tr>
            <tr><td class="diff-unchanged" >{code} <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h1><a name="WSRMConfiguration-UsingWSReliableMessaging"></a>Using
WS-Reliable Messaging</h1>

<p>To make a message exchange between two endpoints reliable, you need to ensure that
the RM interceptors and (as WS-Reliable messaging has a dependency on WS-Addressing) the addressing
interceptors are added to the interceptor chains. This can be achieved in one of the following
ways:</p>

<h2><a name="WSRMConfiguration-UsingtheRMAssertionandtheCXFWSPolicyFramework"></a>Using
the RMAssertion and the CXF WS-Policy Framework </h2>
<p>If</p>
<ol>
	<li>A Policy with an RMAssertion element is attached to the wsdl:service element (or
any other wsdl element that according to the rules for WS-Policy Attachment is an attachment
point for Policy or PolicyReference elements)</li>
	<li>The CXF WS-Policy Framework is enabled</li>
</ol>


<p>the RM interceptors will be automatically added to their respective interceptor chains
by the policy framework. The assertion attributes control the behavior of the source/destination.
</p>

<p>For example, to enable the WS-Policy Framework on the server side, you configuration
file could look like this:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;jaxws:endpoint ...&gt;</span>
    <span class="code-tag">&lt;jaxws:features&gt;</span>
        <span class="code-tag">&lt;p:policies/&gt;</span>
    <span class="code-tag">&lt;/jaxws:features&gt;</span>
<span class="code-tag">&lt;/jaxws:endpoint&gt;</span>
</pre>
</div></div>

<p>and your wsdl:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
&lt;wsp:Policy wsu:Id=<span class="code-quote">"RM"</span> <span class="code-keyword">xmlns:wsp</span>=<span
class="code-quote">"http://www.w3.org/2006/07/ws-policy"</span>
<span class="code-keyword">xmlns:wsu</span>=<span class="code-quote">"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"</span>&gt;
    <span class="code-tag">&lt;wsam:Addressing <span class="code-keyword">xmlns:wsam</span>=<span
class="code-quote">"http://www.w3.org/2007/02/addressing/metadata"</span>&gt;</span>
        <span class="code-tag">&lt;wsp:Policy/&gt;</span>
    <span class="code-tag">&lt;/wsam:Addressing&gt;</span>
    <span class="code-tag">&lt;wsrmp:RMAssertion <span class="code-keyword">xmlns:wsrmp</span>=<span
class="code-quote">"http://schemas.xmlsoap.org/ws/2005/02/rm/policy"</span>&gt;</span>
        <span class="code-tag">&lt;wsrmp:BaseRetransmissionInterval Milliseconds=<span
class="code-quote">"10000"</span>/&gt;</span> 
    <span class="code-tag">&lt;/wsrmp:RMAssertion&gt;</span>
<span class="code-tag">&lt;/wsp:Policy&gt;</span>
...
<span class="code-tag">&lt;wsdl:service name=<span class="code-quote">"ReliableGreeterService"</span>&gt;</span>
    <span class="code-tag">&lt;wsdl:port binding=<span class="code-quote">"tns:GreeterSOAPBinding"</span>
name=<span class="code-quote">"GreeterPort"</span>&gt;</span>
        <span class="code-tag">&lt;soap:address location=<span class="code-quote">"http://localhost:9020/SoapContext/GreeterPort"</span>/&gt;</span>
        <span class="code-tag">&lt;wsp:PolicyReference URI=<span class="code-quote">"#RM"</span>
<span class="code-keyword">xmlns:wsp</span>=<span class="code-quote">"http://www.w3.org/2006/07/ws-policy"</span>/&gt;</span>
       
    <span class="code-tag">&lt;/wsdl:port&gt;</span>
<span class="code-tag">&lt;/wsdl:service&gt;</span>
</pre>
</div></div>

<p>Instead of attaching the PolicyReference attached to the wsdl:port element, you can
also specify it as a child element of the policies features, e.g. for the server endpoint:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;wsp:Policy wsu:Id=<span class="code-quote">"RM"</span>
<span class="code-keyword">xmlns:wsp</span>=<span class="code-quote">"http://www.w3.org/2006/07/ws-policy"</span>
...&gt;</span>
<span class="code-tag">&lt;/wsp:Policy&gt;</span>

<span class="code-tag">&lt;jaxws:endpoint ...&gt;</span>
    <span class="code-tag">&lt;jaxws:features&gt;</span>
        <span class="code-tag">&lt;p:policies&gt;</span>
            <span class="code-tag">&lt;wsp:PolicyReference URI=<span class="code-quote">"#RM"</span>
<span class="code-keyword">xmlns:wsp</span>=<span class="code-quote">"http://www.w3.org/2006/07/ws-policy"</span>/&gt;</span>
        <span class="code-tag">&lt;/p:policies&gt;</span>
    <span class="code-tag">&lt;/jaxws:features&gt;</span>
<span class="code-tag">&lt;/jaxws:endpoint&gt;</span>
</pre>
</div></div>

<h2><a name="WSRMConfiguration-UsingtheReliableMessagingFeature"></a>Using
the Reliable Messaging Feature</h2>

<p>If you don't want to involve the WS-Policy Framework, or want to configure additional
parameters such as the sequence termination policy or the persistent store, you can use the
reliableMessaging feature. It is defined in namespace <a href="http://cxf.apache.org/ws/rm/manager"
class="external-link" rel="nofollow">http://cxf.apache.org/ws/rm/manager</a> and
supports the following child elements:</p>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Name </th>
<th class='confluenceTh'> Value </th>
</tr>
<tr>
<td class='confluenceTd'> RMAssertion </td>
<td class='confluenceTd'> An element of type RMAssertion. </td>
</tr>
<tr>
<td class='confluenceTd'> deliveryAssurance </td>
<td class='confluenceTd'> An element of type DeliveryAssuranceType that describes the
delivery assurance that should apply (AtMostOnce, AtLeastOnce, InOrder).</td>
</tr>
<tr>
<td class='confluenceTd'> sourcePolicy </td>
<td class='confluenceTd'> An element of type SourcePolicyType that allows you to configure
details of the RM source, such as whether an offer should always be included in a CreateSequence
request, or the sequence termination policy. </td>
</tr>
<tr>
<td class='confluenceTd'> destinationPolicy</td>
<td class='confluenceTd'> An element of type DestinationPolicyType that allows you to
configure details of the RM destination, such as whether inbound offers should be accepted.</td>
</tr>
<tr>
<td class='confluenceTd'> store </td>
<td class='confluenceTd'> The store to use (default: null). This must be an element
of type jdbcStore (in the same namespace), or a bean or a reference to a bean that implements
the RMStore interface. </td>
</tr>
</tbody></table>
</div>


<p>For details about the element types used in this namespace please refer to the schemas
for the <a href="http://cxf.apache.org/ws/rm/manager" class="external-link" rel="nofollow">http://cxf.apache.org/ws/rm/manager</a>
namespace (<a href="http://cxf.apache.org/schemas/wsrm-manager.xsd" class="external-link"
rel="nofollow">http://cxf.apache.org/schemas/wsrm-manager.xsd</a> and <a href="http://cxf.apache.org/schemas/wsrm-manager-types.xsd"
class="external-link" rel="nofollow">http://cxf.apache.org/schemas/wsrm-manager-types.xsd</a>).
The jbdcStore element type is described below.</p>

<p>Example (feature applied at bus level):</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;cxf:bus&gt;</span>
    <span class="code-tag">&lt;cxf:features&gt;</span>
        <span class="code-tag">&lt;wsa:addressing/&gt;</span>
        <span class="code-tag">&lt;wsrm-mgr:reliableMessaging&gt;</span>
            <span class="code-tag">&lt;wsrm-policy:RMAssertion&gt;</span>
                <span class="code-tag">&lt;wsrm-policy:BaseRetransmissionInterval
Milliseconds=<span class="code-quote">"4000"</span>/&gt;</span>    
      
                <span class="code-tag">&lt;wsrm-policy:AcknowledgementInterval Milliseconds=<span
class="code-quote">"2000"</span>/&gt;</span>          
            <span class="code-tag">&lt;/wsrm-policy:RMAssertion&gt;</span>

            <span class="code-tag">&lt;wsrm-mgr:sourcePolicy&gt;</span>
                <span class="code-tag">&lt;wsrm-mgr:sequenceTerminationPolicy maxLength=<span
class="code-quote">"5"</span>/&gt;</span>                    
            <span class="code-tag">&lt;/wsrm-mgr:sourcePolicy&gt;</span>
    
            <span class="code-tag">&lt;wsrm-mgr:destinationPolicy acceptOffers=<span
class="code-quote">"false"</span>&gt;</span>            
            <span class="code-tag">&lt;wsrm:store&gt;</span>
               <span class="code-tag">&lt;ref bean=<span class="code-quote">"myStore"</span>/&gt;</span>
            <span class="code-tag">&lt;/wsrm:store&gt;</span>
        <span class="code-tag">&lt;/wsrm-mgr:reliableMessaging&gt;</span>
    <span class="code-tag">&lt;/cxf:features&gt;</span>
<span class="code-tag">&lt;/cxf:bus&gt;</span>
</pre>
</div></div>

<h2><a name="WSRMConfiguration-ConfiguringtheReliableMessagingStore"></a>Configuring
the Reliable Messaging Store</h2>

<p>To enable persistence, you must specify the object implementing the persistent store
for RM. You can develop your own, or use the JDBC based store that comes with CXF (class org.apache.cxf.ws.rm.persistence.jdbc.RMTxStore).
You can configure the latter using a custom jdbcStore bean (namespace <a href="http://cxf.apache.org/ws/rm/manager"
class="external-link" rel="nofollow">http://cxf.apache.org/ws/rm/manager</a>). It
supports the attributes:</p>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'>Attribute Name </th>
<th class='confluenceTh'> Type </th>
<th class='confluenceTh'> Default </th>
</tr>
<tr>
<td class='confluenceTd'>driverClassName </td>
<td class='confluenceTd'> String </td>
<td class='confluenceTd'> org.apache.derby.jdbc.EmbeddedDriver </td>
</tr>
<tr>
<td class='confluenceTd'> userName </td>
<td class='confluenceTd'> String </td>
<td class='confluenceTd'> null </td>
</tr>
<tr>
<td class='confluenceTd'> passWord </td>
<td class='confluenceTd'> String </td>
<td class='confluenceTd'> null </td>
</tr>
<tr>
<td class='confluenceTd'> url </td>
<td class='confluenceTd'> String </td>
<td class='confluenceTd'> jdbc:derby:rmdb;create=true </td>
</tr>
</tbody></table>
</div>


<p>Example:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
&lt;wsrm-mgr:jdbcStore id=<span class="code-quote">"myStore"</span>
    driverClassName=<span class="code-quote">"org.apache.derby.jdbc.ClientDriver"</span>/&gt;
    url=<span class="code-quote">"jdbc:derby://localhost:1527/rmdb;create=true"</span>/&gt;
    password=<span class="code-quote">"password"</span>/&gt;
</pre>
</div></div>

<h2><a name="WSRMConfiguration-AddingtheReliableMessagingInterceptorsManually"></a>Adding
the Reliable Messaging Interceptors Manually</h2>

<p>To ensure that the Reliable Messaging interceptors are added to the appropriate interceptor
chains, e.g. for all client and server endpoints:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;bean id=<span class="code-quote">"rmLogicalOut"</span>
class=<span class="code-quote">"org.apache.cxf.ws.rm.RMOutInterceptor"</span>&gt;</span>
    <span class="code-tag">&lt;property name=<span class="code-quote">"bus"</span>
ref=<span class="code-quote">"cxf"</span>/&gt;</span>
<span class="code-tag">&lt;/bean&gt;</span>
<span class="code-tag">&lt;bean id=<span class="code-quote">"rmLogicalIn"</span>
class=<span class="code-quote">"org.apache.cxf.ws.rm.RMInInterceptor"</span>&gt;</span>
    <span class="code-tag">&lt;property name=<span class="code-quote">"bus"</span>
ref=<span class="code-quote">"cxf"</span>/&gt;</span>
<span class="code-tag">&lt;/bean&gt;</span>
<span class="code-tag">&lt;bean id=<span class="code-quote">"rmCodec"</span>
class=<span class="code-quote">"org.apache.cxf.ws.rm.soap.RMSoapInterceptor"</span>/&gt;</span>

<span class="code-tag">&lt;cxf:bus ...&gt;</span>
    <span class="code-tag">&lt;cxf:inInterceptors&gt;</span>
        <span class="code-tag">&lt;ref bean=<span class="code-quote">"rmLogicalIn"</span>/&gt;</span>
        <span class="code-tag">&lt;ref bean=<span class="code-quote">"rmCodec"</span>/&gt;</span>
    <span class="code-tag">&lt;/cxf:inInterceptors&gt;</span>
    <span class="code-tag">&lt;cxf:inFaultInterceptors&gt;</span>
        <span class="code-tag">&lt;ref bean=<span class="code-quote">"rmLogicalIn"</span>/&gt;</span>
        <span class="code-tag">&lt;ref bean=<span class="code-quote">"rmCodec"</span>/&gt;</span>
    <span class="code-tag">&lt;/cxf:inFaultInterceptors&gt;</span>
    <span class="code-tag">&lt;cxf:outInterceptors&gt;</span>
        <span class="code-tag">&lt;ref bean=<span class="code-quote">"rmLogicalOut"</span>/&gt;</span>
        <span class="code-tag">&lt;ref bean=<span class="code-quote">"rmCodec"</span>/&gt;</span>
    <span class="code-tag">&lt;/cxf:outInterceptors&gt;</span>
    <span class="code-tag">&lt;cxf:outFaultInterceptors&gt;</span>
        <span class="code-tag">&lt;ref bean=<span class="code-quote">"rmLogicalOut"</span>/&gt;</span>
        <span class="code-tag">&lt;ref bean=<span class="code-quote">"rmCodec"</span>/&gt;</span>
    <span class="code-tag">&lt;cxf:outFaultInterceptors&gt;</span>
<span class="code-tag">&lt;/cxf:bus&gt;</span>
</pre>
</div></div>

<p>The RetransmissionIntercepor will be added on the fly by the RMOutInterceptor so
need not appear in your configuration file.</p>

<h2><a name="WSRMConfiguration-ConfiguringtheReliableMessagingManagerManually"></a>Configuring
the Reliable Messaging Manager Manually</h2>

<p>To configure properties of the RM Manager, you can use the rmManager element from
the <a href="http://cxf.apache.org/ws/rm/manager" class="external-link" rel="nofollow">http://cxf.apache.org/ws/rm/manager</a>
namespace. It supports the same child elements as the reliableMessaging feature element above.
For example, without using features, you can determine that seuences should have a maximum
length of 5 as follows:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;wsrm-mgr:rmManager <span class="code-keyword">xmlns:wsrm-mgr</span>=<span
class="code-quote">"http://cxf.apache.org/ws/rm/manager"</span>&gt;</span>
    <span class="code-tag">&lt;wsrm-mgr:sourcePolicy&gt;</span>
        <span class="code-tag">&lt;wsrm-mgr:sequenceTerminationPolicy maxLength=<span
class="code-quote">"5"</span>/&gt;</span>                    
    <span class="code-tag">&lt;/wsrm-mgr:sourcePolicy&gt;</span>
<span class="code-tag">&lt;/wsrm-mgr:rmManager&gt;</span>
</pre>
</div></div>
    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://cwiki.apache.org/confluence/display/CXF20DOC/WSRMConfiguration">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=63092&revisedVersion=8&originalVersion=7">View
Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/CXF20DOC/WSRMConfiguration?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message