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
> 

Reply via email to