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
-- 
View this message in context: 
http://old.nabble.com/How-to-handle-a-Soap-Fault-message--tp27077694p27077694.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to