I never used the bean component so I won't be of much help there, but it seems to me that you have an InOut exchange somewhere while your whole flow is InOnly.
The marshaler is useless here as you are using the default one so you can omit it. But this is not causing the error in my opinion. If you can switch to InOnly everywhere maybe it will work. Or otherwise, you can try to simplify at the extreme and build up from it to find the error. >From what I know you want to do, Camel -> Bean should be enough, your JMS endpoint are useless. -----Message d'origine----- De : KenBarnesJr [mailto:[email protected]] Envoyé : jeudi 3 septembre 2009 16:26 À : [email protected] Objet : RE: Servicemix Bean camel jms little help 10:23:11,078 | ERROR | pool-flow.seda.servicemix-bean-thread-3 | BeanComponent | emix.common.AsyncBaseLifeCycle 537 | Error processing exchange InOut[ id: ID:10.30.16.204-12380479f45-11:1 status: Done role: provider service: {http://barnes/test}beanService endpoint: beanPoint in: <?xml version="1.0" encoding="UTF-8"?><message>Hello world!</message> ] javax.jbi.messaging.MessagingException: illegal exchange status: done at org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:626) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:386) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:432) at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:88) at org.apache.servicemix.bean.BeanEndpoint$PojoChannel.send(BeanEndpoint.java:628) at barnes.test.MyBean.onMessageExchange(MyBean.java:35) at org.apache.servicemix.bean.BeanEndpoint.onProviderExchange(BeanEndpoint.java:230) at org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:217) at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581) 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) 10:23:11,140 | WARN | DefaultMessageListenerContainer-2 | MessageListenerContainer | stractMessageListenerContainer 646 | Execution of JMS message listener failed javax.jms.JMSException: Error sending JBI exchange at org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575) at org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint$1.onMessage(JmsConsumerEndpoint.java:505) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:518) at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:479) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876) at java.lang.Thread.run(Thread.java:619) Caused by: javax.jbi.messaging.MessagingException: illegal exchange status: done at org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:626) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:386) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:432) at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:88) at org.apache.servicemix.bean.BeanEndpoint$PojoChannel.send(BeanEndpoint.java:628) at barnes.test.MyBean.onMessageExchange(MyBean.java:35) at org.apache.servicemix.bean.BeanEndpoint.onProviderExchange(BeanEndpoint.java:230) at org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:217) at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581) 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) ... 1 more The bean JAVA looks like @Resource private DeliveryChannel channel; public void onMessageExchange(MessageExchange exchange) throws MessagingException { System.out.println("WLRI"); exchange.setStatus(ExchangeStatus.DONE); channel.send(exchange); } THE CAMEL JAVA from("timer://tutorial?fixedRate=true&delay=3000&period=10000") .setBody(constant("<message>Hello world!</message>")) .to("jbi:endpoint:http://barnes/test/jms/provider"); THE JMS XBEAN <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0" xmlns:test="http://barnes/test" xmlns:amq="http://activemq.org/config/1.0"> <jms:provider service="test:jms" endpoint="provider" destinationName="test.queue" connectionFactory="#connectionFactory"/> <jms:consumer service="test:jms" endpoint="consumer" destinationName="test.queue" connectionFactory="#connectionFactory" marshaler="#marshaler" targetService="test:beanService" targetEndpoint="beanPoint" /> <bean id="marshaler" class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler"> <property name="mep" value="http://www.w3.org/2004/08/wsdl/in-out" /> </bean> <amq:connectionFactory id="connectionFactory" brokerURL="tcp://localhost:61616" /> </beans> I dont know why i use a marshaler.... what exactly is it doing?? Just saw it in tutorial somewhere -- View this message in context: http://www.nabble.com/Servicemix-Bean-camel-jms-little-help-tp25257646p25277247.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
