1 Reply Latest reply on Oct 11, 2010 5:05 AM by ade

    Direct JMS to file bridge: exception: Unsupported MEP /

    garyyark

      Hi,

       

      I'm getting this exception on trying to bridge JMS Queue to File system. I suspect FileSender cannot determine the file name because File-to-File bridge works fine, so file Sender works.

       

      This is fuse 4.2.

       

      Could you please look at the below configuration and the exception and tell me what I'm doing wring? Thank you very much!

       

      Here are my configs:

      JMS endpoint

      -


       

       

      FileSender endpoint

      -


       

       

      Exception

      -


       

      16:04:26,428 | INFO  | use-02-00/deploy | ServiceAssemblyImpl              | er.artifacts.ServiceAssemblyImpl  271 | Cha

      nging SA state to Started

      16:04:45,693 | ERROR | ix-file-thread-2 | FileComponent                    | icemix.common.AsyncBaseLifeCycle  470 | Err

      or processing exchange org.apache.servicemix.jbi.runtime.impl.InOutImpl@1d3ada3

      java.lang.UnsupportedOperationException: Unsupported MEP: http://www.w3.org/2004/08/wsdl/in-out

              at org.apache.servicemix.common.endpoints.ProviderEndpoint.processInOut(ProviderEndpoint.java:136)

              at org.apache.servicemix.file.FileSenderEndpoint.processInOut(FileSenderEndpoint.java:172)

              at org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:111)

              at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:617)

              at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:571)

              at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:468)

              at org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347)

              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)

      16:04:45,709 | ERROR | mix-jms-thread-3 | JmsComponent                     | icemix.common.AsyncBaseLifeCycle  470 | Err

      or processing exchange org.apache.servicemix.jbi.runtime.impl.InOutImpl@1d3ada3

      java.lang.UnsupportedOperationException: A destination must be specified.

              at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:199)

              at org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)

              at org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.ja

      va:126)

              at org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:400)

              at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:617)

              at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:588)

              at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:468)

              at org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347)

              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)

        • 1. Re: Direct JMS to file bridge: exception: Unsupported MEP /
          ade

          Hi Gary,

           

          I think the problem may be due to a JMSReplyTo header in your incoming message. When the JMS component detects that the incoming message has a JMSReplyTo header, it determines that a response is required and so sets the message exchange pattern (MEP) to InOut. The file component is only implemented to support 'InOnly' message exchanges - when you think about it this makes sense as the concept of 'InOut' or request-response doesn't really make much sense when you're writing a file to a file system: you just want to save the file to disk.

           

          If you like, you can experiment with setting the MEP using the 'defaultMep' attribute for the JMS endpoint, for more, see http://servicemix.apache.org/servicemix-jms.html.

           

          Alternatively, you can use Camel, which'll be a whole lot easier

           

          Hope that helps,

          Ade.