My wsdl now contains the RM-Assertion and I have enabled the policy engine
(by getting hold of PolicyEngine from the bus).

But when I invoke the webservice, I get the following message:

Failed to retrieve message addressing properties from context - not ensuring
reliable delivery.
  Messages Trace:
      retrieving MAPs from context property {0};(
org.apache.cxf.ws.addressing.ContextUtils)
      WS-Addressing - failed to retrieve Message Addressing Properties from
context;(org.apache.cxf.ws.addressing.ContextUtils)
      retrieving MAPs from context property {0};(
org.apache.cxf.ws.addressing.ContextUtils)
      WS-Addressing - failed to retrieve Message Addressing Properties from
context;(org.apache.cxf.ws.addressing.ContextUtils)
      retrieving MAPs from context property {0};(
org.apache.cxf.ws.addressing.ContextUtils)
      WS-Addressing - failed to retrieve Message Addressing Properties from
context;(org.apache.cxf.ws.addressing.ContextUtils)
      Failed to retrieve message addressing properties from context - not
ensuring reliable delivery.;(org.apache.cxf.ws.rm.RMOutInterceptor)


What could have gone wrong?

-Bharath




On 9/25/07, Glynn, Eoghan <[EMAIL PROTECTED]> wrote:
>
>
>
> The presence of RMAssertion in the WSDL is enough for WS-RM to be
> engaged in the client-runtime *if* the policy engine is turned on the
> client config, via something like the following:
>
>     <bean id="org.apache.cxf.ws.policy.PolicyEngine"
> class="org.apache.cxf.ws.policy.spring.InitializingPolicyEngine">
>         <property name="bus" ref="cxf"/>
>         <property name="enabled" value="true"/>
>     </bean>
>
> See the ws_policy demo for an example of this usage and also the
> docco[1] for more details.
>
> This automatic injection of capability into the runtime triggered by the
> presence of policy assertions is one of the main goals of the CXF
> WS-Policy framework[2].
>
> Cheers,
> Eoghan
>
> [1] http://cwiki.apache.org/CXF20DOC/wspconfiguration.html
> [2] http://cwiki.apache.org/CXF20DOC/ws-policy-framework-overview.html
>
>
> > -----Original Message-----
> > From: Bharath Ganesh [mailto:[EMAIL PROTECTED]
> > Sent: 25 September 2007 14:12
> > To: cxf-user@incubator.apache.org
> > Subject: WS-RM Usage
> >
> > Hi
> >
> > I have been trying to get WS-RM to work in CXF. These are the
> > steps I followed.
> >
> > WSDL: Reference to a WS-policy, containing a RMAssertion.
> >
> > <wsp:Policy wsu:Id="RM">
> >     <wsam:Addressing>
> >         <wsp:Policy/>
> >     </wsam:Addressing>
> >     <wsrmp:RMAssertion>
> >        <wsrmp:BaseRetransmissionInterval Milliseconds="10000"/>
> >     </wsrmp:RMAssertion>
> > </wsp:Policy>
> >
> > But this was not enough for the client side RM configuration.
> > The RM Interceptors were not added even thought the service
> > client (Generated JAX-WS Service class) pointed to this wsdl.
> >
> > So I chose to programatically get hold of the bus, enable
> > WS-Policy, create the RMFeature, set the RM Store and add the
> > RMInterceptors explicitly.
> > Is that really needed? Shouldn't the runtime do this if wsdl
> > contains a WS-Policy reference, which has a RM assertion?
> >
> > In added RMOutInterceptor, RMInInterceptor, RMSoapInterceptor
> > (to in and out), RetransmissionInterceptor (to in and out) to
> > the client side org.apache.cxf.endpoint.Endpoint.
> >
> > After configuring all this when the message goes outward from
> > the client I get this exception:
> >
> > Caused by: java.lang.NullPointerException
> >     at
> > org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.cacheUnacknowledged
> > (RetransmissionQueueImpl.java:202)
> >     at
> > org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.addUnacknowledged(
> > RetransmissionQueueImpl.java:92)
> >     at org.apache.cxf.ws.rm.RetransmissionCallback.onClose(
> > RetransmissionCallback.java:56)
> >     at
> > org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java
> > :113)
> >     at
> > org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
> > :66)
> >     at
> > org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
> >     at
> > org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSen
> > derEndingInterceptor.handleMessage
> > (MessageSenderInterceptor.java:62)
> >     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> > PhaseInterceptorChain.java:207)
> >     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> >     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> >     at
> > org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> >     at
> > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
> > :135)
> >
> > This means the RMProperties is not set in the message.
> > What could go wrong?
> >
>
> ----------------------------
> IONA Technologies PLC (registered in Ireland)
> Registered Number: 171387
> Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
>

Reply via email to