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.

Reply via email to