camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: How to handle a Soap Fault message?
Date Sat, 09 Jan 2010 01:51:57 GMT
Hi,

Which servicemix-camel component are you using?
 From the stack trace it look like servicemix-camel component have 
trouble to create the FalutMessage.

Can you try the latest servicemix-camel component , as we did some 
refactor work 4 months ago, which may fix the issue that you hit.

Willem

jeroenvoogt wrote:
> Hi all,
> 
> One of the systems I'm communicating with using ServiceMix and Camel is SOAP
> based. When that system returns SOAP Fault messages I'd like to transform
> them using XSLT and then put them into a JMS message queue. However Camel
> throws an exception after it receives the SOAP Faults:
> 
> 
> 14:31:24,452 | ERROR | pool-flow.seda.servicemix-http-thread-2 |
> CamelJbiComponent        | emix.common.AsyncBaseLifeCycle  537 | Error
> processing exchange InOut[
>   id: ID:192.168.0.220-1260e20c0fb-3:3
>   status: Active
>   role: consumer
>   endpoint: ProductServiceImplPort
>   in: <?xml version="1.0"
> encoding="UTF-8"?><updateSize><size><operation>INSERT_UPDATE</operation><sizeCode>1
> XXL</sizeCode><languageCode>NL</languageCode><description>XXL</description></size></updateSize>
>   fault: null
> ]
> java.lang.RuntimeException: javax.jbi.messaging.MessagingException: Fault
> not supported
> 	at
> org.apache.servicemix.camel.JbiExchange.createMessage(JbiExchange.java:184)
> 	at
> org.apache.servicemix.camel.JbiExchange.createFaultMessage(JbiExchange.java:161)
> 	at
> org.apache.servicemix.camel.JbiExchange.createFaultMessage(JbiExchange.java:37)
> 	at org.apache.camel.impl.DefaultExchange.getFault(DefaultExchange.java:259)
> 	at org.apache.servicemix.camel.JbiExchange.getFault(JbiExchange.java:78)
> 	at org.apache.servicemix.camel.JbiExchange.getFault(JbiExchange.java:37)
> 	at org.apache.camel.impl.DefaultExchange.getFault(DefaultExchange.java:254)
> 	at org.apache.servicemix.camel.JbiExchange.getFault(JbiExchange.java:73)
> 	at org.apache.servicemix.camel.JbiExchange.getFault(JbiExchange.java:37)
> 	at
> org.apache.servicemix.camel.CamelConsumerEndpoint.processReponse(CamelConsumerEndpoint.java:131)
> 	at
> org.apache.servicemix.camel.CamelConsumerEndpoint.process(CamelConsumerEndpoint.java:70)
> 	at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
> 	at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:598)
> 	at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
> 	at
> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
> 	at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
> 	at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> 	at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
> 	at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: javax.jbi.messaging.MessagingException: Fault not supported
> 	at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:366)
> 	at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:290)
> 	at
> org.apache.servicemix.camel.JbiExchange.createMessage(JbiExchange.java:171)
> 	... 21 more
> 
> 
> 
> How should I correctly handle SOAP Faults?
> 
> Thanks!
> Jeroen


Mime
View raw message