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 <[email protected]> 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.retransmissionintercep...@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. >
