cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aki Yoshida <sapa...@googlemail.com>
Subject Re: RetransmissionInterceptor
Date Thu, 23 Dec 2010 09:39:41 GMT
Hi Jürgen,

This RetransmissionInterceptor is used in the normal WS-RM messaging
processing and it is responsible for retranmitting
not-yet-acknowledged WS-RM messages. So, you can't manually insert it
somewhere and expect it to perform the retries of arbitrary messages
automatically.

In particular, the CreateSequence message is sent during the hand
shaking part of the WS-RM protocol. If some error occurs, there is no
sequence created, your client will get this error so it can decide
what to do with the problem. If there is no sequence created, it is
not possible to start the WS-RM messaging. So your client needs to
handle the exception from this part of the processing just as it also
needs to handle any exceptions that may be thrown before the thread
reaches the WS-RM interceptors.

If you want your client to decouple from this error handling logic,
youu can use some queueing to queue your messages before sending them
to the WS-RM interceptors. Just as an example, if you use Apache
Camel's endpoint like File, JMS, etc to initiate a call, these
endpoints can automatically perform retries until the call succeeds
without any exception.

Regards, Aki

On Mon, Dec 20, 2010 at 2:44 PM, Jürgen CXF User
<familie.kollomi@gmail.com> wrote:
>
> Hi,
> when I attached additionally the RetransmissionInterceptor to the Out and
> In-Interceptor chain of the bus the WSRM-enabled client got the following
> error (see below).
> I searched for more information about the idea of the
> RetransmissionInterceptor without success. I am also not sure what failure
> scenarios are supported from Apache CXF regarding network failures because I
> observed that the automatic retransmission only works when the
> CreateSequence message could be send.
>
> Side note:
> I enabled the persistence store to allow retransmission of failed messages.
>
> Thanks and best regards,
>  Jürgen
>
>
> 2010-12-20
> 14:25:33#+0100#WARN#org.apache.cxf.phase.PhaseInterceptorChainException in
> handleFault on interceptor
> org.apache.cxf.ws.rm.RetransmissionInterceptor@d6c410
> java.lang.NullPointerException
>        at
> org.apache.cxf.ws.rm.RetransmissionInterceptor.handle(RetransmissionInterceptor.java:63)
>        at
> org.apache.cxf.ws.rm.RetransmissionInterceptor.handleFault(RetransmissionInterceptor.java:59)
>        at
> org.apache.cxf.phase.PhaseInterceptorChain.unwind(PhaseInterceptorChain.java:400)
>        at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:289)
>        at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:700)
>        at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2261)
>        at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2134)
>        at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1988)
>        at
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47)
>        at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:188)
>        at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639)
>        at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>        at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:487)
>        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:322)
>        at org.apache.cxf.ws.rm.Proxy.invoke(Proxy.java:262)
>        at org.apache.cxf.ws.rm.Proxy.createSequence(Proxy.java:162)
>        at org.apache.cxf.ws.rm.RMManager.getSequence(RMManager.java:338)
>        at org.apache.cxf.ws.rm.RMOutInterceptor.handle(RMOutInterceptor.java:131)
>        at
> org.apache.cxf.ws.rm.AbstractRMInterceptor.handleMessage(AbstractRMInterceptor.java:78)
>        at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:487)
>        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
>        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
>        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>        at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/RetransmissionInterceptor-tp3311969p3311969.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>

Mime
View raw message