Uploaded image for project: 'ServiceMix Components'
  1. ServiceMix Components
  2. SMXCOMP-351

Camel cannot change JbiExchange's out message when JBI InOnly MessageExchange was initially received

    XMLWordPrintableJSON

Details

    Description

      When a JBI component sends an InOnly MessageExchange to camel, the Camel route can not do anything that would change the Camel Exchange's out message. We will have to allow the Camel route to modify the out message 'en cours de route' without touching the JBI MessageExchange.

      java.lang.RuntimeException: javax.jbi.messaging.MessagingException: Out not supported
      	at org.apache.servicemix.camel.JbiExchange.createMessage(JbiExchange.java:161)
      	at org.apache.servicemix.camel.JbiExchange.createOutMessage(JbiExchange.java:143)
      	at org.apache.servicemix.camel.JbiExchange.createOutMessage(JbiExchange.java:34)
      	at org.apache.camel.impl.DefaultExchange.getOut(DefaultExchange.java:178)
      	at org.apache.servicemix.camel.JbiExchange.getOut(JbiExchange.java:68)
      	at org.apache.servicemix.camel.JbiExchange.getOut(JbiExchange.java:34)
      	at org.apache.camel.impl.DefaultExchange.getOut(DefaultExchange.java:173)
      	at org.apache.servicemix.camel.JbiExchange.getOut(JbiExchange.java:63)
      	at org.apache.servicemix.camel.JbiExchange.getOut(JbiExchange.java:34)
      	at org.apache.camel.processor.ConvertBodyProcessor.process(ConvertBodyProcessor.java:45)
      	at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsynProcessorBridge.process(AsyncProcessorTypeConverter.java:44)
      	at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:143)
      	at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:87)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
      	at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:40)
      	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:44)
      	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:68)
      	at org.apache.servicemix.camel.CamelJbiEndpoint.handleActiveProviderExchange(CamelJbiEndpoint.java:94)
      	at org.apache.servicemix.camel.CamelJbiEndpoint.process(CamelJbiEndpoint.java:74)
      	at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
      	at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
      	at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
      	at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
      	at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
      	at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
      	at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
      	at java.lang.Thread.run(Thread.java:619)
      Caused by: javax.jbi.messaging.MessagingException: Out not supported
      	at org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:357)
      	at org.apache.servicemix.camel.JbiExchange.createMessage(JbiExchange.java:157)
      	... 29 more
      

      Attachments

        Activity

          People

            gertvanthienen Gert Vanthienen
            gertvanthienen Gert Vanthienen
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: