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