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.