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

Reply via email to