You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by mta38 <mt...@orange-ftgroup.com> on 2008/12/18 13:56:23 UTC
Camel - CXf - Web service - seda
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
--
View this message in context: http://www.nabble.com/Camel---CXf---Web-service---seda-tp21072230s22882p21072230.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: Camel - CXf - Web service - seda
Posted by Willem Jiang <wi...@gmail.com>.
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
>