Hi, Did your back end web service will response a soap fault message? If so, you need turn off the default error handle like this
<camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring"> <route errorHandlerRef="noErrorHandler"> <from uri="cxf:bean:routerEndpoint" /> <to uri="cxf:bean:serviceEndpoint" /> </route> </camelContext> <bean id="noErrorHandler" class="org.apache.camel.builder.NoErrorHandlerBuilder"/> Willem mta38 wrote: > Hi all, > New route, new problem…:-( > I try to route message from a front end web service to back ends web > service. > The following snippet describe front end and back end web service message > > Front end main request message > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:cli="http://www.example.org/Client/"> > <soapenv:Header/> > <soapenv:Body> > <cli:soldeClient> > <cli:idClient>CLIENT_VALUE</cli:idClient> > </cli:soldeClient> > </soapenv:Body> > </soapenv:Envelope> > > Back end expected request > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:cli="http://www.example.org/ClientInternet/"> > <soapenv:Header/> > <soapenv:Body> > <cli:soldeClientInternet> > <cli:idClient>CLIENT_VALUE</cli:idClient> > </cli:soldeClientInternet> > </soapenv:Body> > </soapenv:Envelope> > > My route is the following > > <camelContext id="camelContext" > xmlns="http://activemq.apache.org/camel/schema/spring"> > > <route> > <from uri="direct:start" /> > <process ref="correlationProcessor"/> > <to uri="seda:clientRequest"/> > </route> > > <!-- main request must be adapted before to be send to back end > --> > <route> > <from uri="seda: clientRequest " /> > <process ref="fixeProcessor"/> > <to uri="cxf:bean:endpointFixeProvider"/> > <to uri="seda:providerResponseQueue" /> > </route> > > > <route> > <from uri="seda:providerResponseQueue " /> > <process ref="translator" /> > <to uri="direct:start"/> > </route> > > Where cxf endpoint is define like that: > > <cxf:cxfEndpoint id="endpointFixeProvider" > serviceClass="org.example.clientfixe.ClientFixe" > address="http://localhost:9001/ClientFixeSOAP" > wsdlURL="wsdl/ClientFixe-1.0.wsdl" > endpointName="s:ClientFixeSOAP" > serviceName="s:ClientFixe" > xmlns:s="http://www.example.org/ClientFixe/"> > <cxf:properties> > <entry key="dataFormat" value="MESSAGE"></entry> > </cxf:properties> > <cxf:features> > <!-- Enables logging of SOAP messages. --> > <logging xmlns="http://cxf.apache.org/core" /> > </cxf:features> > </cxf:cxfEndpoint> > > In fact I have more than one back-end web service, but I think that my > problem is the same for all, that why I describe only one. > > My processor "fixeProcessor" transform main request to adapt it for back-end > web service request. > > So when send main request from my application I have the following stack > trace > > ERROR : [seda:providerFixeRequest thread:3] DeadLetterChannel > ==> Failed delivery for exchangeId: ID-XXXXXXXXX/4245-1229603765806/0-2. On > delivery attempt: 0 caught: org.apache.cxf.binding.soap.SoapFault: Fault > occurred while processing. > org.apache.cxf.binding.soap.SoapFault: Fault occurred while processing. > at > org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:70) > at > org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) > at > org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96) > at > org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69) > at > org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) > at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:633) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2064) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1942) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1867) > at > org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47) > at > org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:170) > at > org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) > at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:595) > at > org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) > at > org.apache.camel.component.cxf.invoker.CxfClient.invokeWithMessageStream(CxfClient.java:132) > at > org.apache.camel.component.cxf.invoker.CxfClient.dispatch(CxfClient.java:75) > at > org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:242) > at > org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:166) > at > org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43) > at > org.apache.camel.processor.SendProcessor.process(SendProcessor.java:75) > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:63) > at > org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:172) > at > org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:93) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:115) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:89) > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:63) > at > org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:65) > at > org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:69) > at java.lang.Thread.run(Thread.java:595) > > There are a few days that I deals with this problem and I think I will kill > the computer ! >-( > Any help are welcome > Mta38 >