[rabbitmq-discuss] Polling message from RabbitMQ by servicemix.

aznmedia digz6666 at gmail.com
Sun Dec 14 14:11:11 GMT 2008




aznmedia wrote:
> 
> 
> 
> Holger Hoffstätte-2 wrote:
>> 
>> aznmedia wrote:
>>> 
>>> I'm writing my xbean.xml file like following:
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <beans xmlns:jee="http://www.springframework.org/schema/jee"
>>>       xmlns="http://www.springframework.org/schema/beans"
>>>       xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance"
>>>       xsi:schemaLocation="http://servicemix.apache.org/jms/1.0
>>> http://servicemix.apache.org/schema/servicemix-jms-3.2.2.xsd
>>>       http://www.springframework.org/schema/beans
>>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
>>> 
>>>        <jms:consumer service="my:ConsumerService"
>>>                endpoint="mq"
>>>                destinationName="rabbit-queue"
>>>                connectionFactory="#connectionFactory"
>>>                concurrentConsumers="8" />
>>> 
>>> 
>>>        <bean id="connectionFactory"
>>> class="com.rabbitmq.client.ConnectionFactory">
>> [..]
>> 
>> I think there is some general confusion going on here. The ServiceMix
>> consumer bean expects a *JMS* ConnectionFactory, but that will not work
>> with the RabbitMQ connection factory, since it plays the same role
>> (connection management) but does *not* implement the necessary JMS
>> functionality. You will either have to wait until AMQP (or in this case
>> the RabbitMQ library) implements JMS, or write your own AMQP/Rabbit
>> transport for ServiceMix. Alternatively you might try a Qpid client
>> library which is reported to work against a Rabbit broker (though I
>> cannot
>> say how well).
>> 
>> -h
>> 
>> _______________________________________________
>> rabbitmq-discuss mailing list
>> rabbitmq-discuss at lists.rabbitmq.com
>> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>> 
>> 
> 
> JMS service unit deployed with exceptions. It shows following exception:
> java.lang.Exception: <?xml version="1.0" encoding="UTF-8"?>
> <jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message"
> version="1.0
> ">
> <jbi-task-result>
> <frmwk-task-result>
> <frmwk-task-result-details>
> <task-result-details>
> <task-id>start</task-id>
> <task-result>FAILED</task-result>
> <message-type>ERROR</message-type>
> </task-result-details>
> </frmwk-task-result-details>
> </frmwk-task-result>
> <component-task-result
> xmlns="http://java.sun.com/xml/ns/jbi/management-message"
>>
>         <component-name>servicemix-xmpp</component-name>
>         <component-task-result-details>
>                 <task-result-details>
>                         <task-id>start</task-id>
>                         <task-result>FAILED</task-result>
>                         <message-type>ERROR</message-type>
>                         <task-status-msg>
> <msg-loc-info>
> <loc-token/>
> <loc-message>Unable to start service unit</loc-message>
> </msg-loc-info>
> </task-status-msg>
>                         <exception-info>
>                                 <nesting-level>1</nesting-level>
>                                 <msg-loc-info>
>                                         <loc-token/>
>                                         <loc-message>XMPPError connecting
> to eon
> -developer:5222.</loc-message>
>                                         <stack-trace><![CDATA[XMPPError
> connecti
> ng to eon-developer:5222.: (502)
>   -- caused by: java.net.ConnectException: Connection refused: connect
>         at
> org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPC
> onnection.java:281)
>         at
> org.jivesoftware.smack.XMPPConnection.<init>(XMPPConnection.java:171)
> 
>         at
> org.apache.servicemix.xmpp.XMPPEndpoint.start(XMPPEndpoint.java:77)
>         at
> org.apache.servicemix.xmpp.GroupChatEndpoint.start(GroupChatEndpoint.
> java:51)
>         at
> org.apache.servicemix.common.DefaultServiceUnit.start(DefaultServiceU
> nit.java:78)
>         at
> org.apache.servicemix.common.BaseServiceUnitManager.start(BaseService
> UnitManager.java:155)
>         at
> org.apache.servicemix.jbi.framework.ServiceUnitLifeCycle.start(Servic
> eUnitLifeCycle.java:103)
>         at
> org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.start(Se
> rviceAssemblyLifeCycle.java:132)
>         at
> org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.restore(
> ServiceAssemblyLifeCycle.java:330)
>         at
> org.apache.servicemix.jbi.framework.DeploymentService.start(Deploymen
> tService.java:100)
>         at
> org.apache.servicemix.jbi.container.JBIContainer.start(JBIContainer.j
> ava:670)
>         at
> org.apache.servicemix.jbi.container.SpringJBIContainer.afterPropertie
> sSet(SpringJBIContainer.java:115)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory$1.run(AbstractAutowireCapableBeanFactory.java:409)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory.createBean(AbstractAutowireCapableBeanFactory.java:380)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
> ject(AbstractBeanFactory.java:264)
>         at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
> y.getSingleton(DefaultSingletonBeanRegistry.java:221)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
> an(AbstractBeanFactory.java:261)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (AbstractBeanFactory.java:185)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (AbstractBeanFactory.java:164)
>         at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.
> preInstantiateSingletons(DefaultListableBeanFactory.java:429)
>         at
> org.springframework.context.support.AbstractApplicationContext.finish
> BeanFactoryInitialization(AbstractApplicationContext.java:729)
>         at
> org.springframework.context.support.AbstractApplicationContext.refres
> h(AbstractApplicationContext.java:381)
>         at
> org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>
> (ClassPathXmlApplicationContext.java:161)
>         at
> org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>
> (ClassPathXmlApplicationContext.java:51)
>         at org.apache.servicemix.Main.main(Main.java:53)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> org.codehaus.classworlds.Launcher.launchStandard(Launcher.java:410)
>         at org.codehaus.classworlds.Launcher.launch(Launcher.java:344)
>         at org.codehaus.classworlds.Launcher.main(Launcher.java:461)
> Nested Exception:
> java.net.ConnectException: Connection refused: connect
>         at java.net.PlainSocketImpl.socketConnect(Native Method)
>         at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
>         at
> java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
>         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
>         at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
>         at java.net.Socket.connect(Socket.java:519)
>         at java.net.Socket.connect(Socket.java:469)
>         at java.net.Socket.<init>(Socket.java:366)
>         at java.net.Socket.<init>(Socket.java:180)
>         at
> org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPC
> onnection.java:268)
>         at
> org.jivesoftware.smack.XMPPConnection.<init>(XMPPConnection.java:171)
> 
>         at
> org.apache.servicemix.xmpp.XMPPEndpoint.start(XMPPEndpoint.java:77)
>         at
> org.apache.servicemix.xmpp.GroupChatEndpoint.start(GroupChatEndpoint.
> java:51)
>         at
> org.apache.servicemix.common.DefaultServiceUnit.start(DefaultServiceU
> nit.java:78)
>         at
> org.apache.servicemix.common.BaseServiceUnitManager.start(BaseService
> UnitManager.java:155)
>         at
> org.apache.servicemix.jbi.framework.ServiceUnitLifeCycle.start(Servic
> eUnitLifeCycle.java:103)
>         at
> org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.start(Se
> rviceAssemblyLifeCycle.java:132)
>         at
> org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.restore(
> ServiceAssemblyLifeCycle.java:330)
>         at
> org.apache.servicemix.jbi.framework.DeploymentService.start(Deploymen
> tService.java:100)
>         at
> org.apache.servicemix.jbi.container.JBIContainer.start(JBIContainer.j
> ava:670)
>         at
> org.apache.servicemix.jbi.container.SpringJBIContainer.afterPropertie
> sSet(SpringJBIContainer.java:115)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory$1.run(AbstractAutowireCapableBeanFactory.java:409)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory.createBean(AbstractAutowireCapableBeanFactory.java:380)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
> ject(AbstractBeanFactory.java:264)
>         at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
> y.getSingleton(DefaultSingletonBeanRegistry.java:221)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
> an(AbstractBeanFactory.java:261)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (AbstractBeanFactory.java:185)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (AbstractBeanFactory.java:164)
>         at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.
> preInstantiateSingletons(DefaultListableBeanFactory.java:429)
>         at
> org.springframework.context.support.AbstractApplicationContext.finish
> BeanFactoryInitialization(AbstractApplicationContext.java:729)
>         at
> org.springframework.context.support.AbstractApplicationContext.refres
> h(AbstractApplicationContext.java:381)
>         at
> org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>
> (ClassPathXmlApplicationContext.java:161)
>         at
> org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>
> (ClassPathXmlApplicationContext.java:51)
>         at org.apache.servicemix.Main.main(Main.java:53)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> org.codehaus.classworlds.Launcher.launchStandard(Launcher.java:410)
>         at org.codehaus.classworlds.Launcher.launch(Launcher.java:344)
>         at org.codehaus.classworlds.Launcher.main(Launcher.java:461)
> ]]></stack-trace>
>                                 </msg-loc-info>
>                         </exception-info>
>                 </task-result-details>
>         </component-task-result-details>
> </component-task-result>
> </jbi-task-result>
> </jbi-task>
> 
>         at
> org.apache.servicemix.jbi.framework.ManagementSupport.failure(Managem
> entSupport.java:125)
>         at
> org.apache.servicemix.jbi.framework.ManagementSupport.failure(Managem
> entSupport.java:111)
>         at
> org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.start(Se
> rviceAssemblyLifeCycle.java:146)
>         at
> org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.restore(
> ServiceAssemblyLifeCycle.java:330)
>         at
> org.apache.servicemix.jbi.framework.DeploymentService.start(Deploymen
> tService.java:100)
>         at
> org.apache.servicemix.jbi.container.JBIContainer.start(JBIContainer.j
> ava:670)
>         at
> org.apache.servicemix.jbi.container.SpringJBIContainer.afterPropertie
> sSet(SpringJBIContainer.java:115)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory$1.run(AbstractAutowireCapableBeanFactory.java:409)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBean
> Factory.createBean(AbstractAutowireCapableBeanFactory.java:380)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
> ject(AbstractBeanFactory.java:264)
>         at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
> y.getSingleton(DefaultSingletonBeanRegistry.java:221)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
> an(AbstractBeanFactory.java:261)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (AbstractBeanFactory.java:185)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (AbstractBeanFactory.java:164)
>         at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.
> preInstantiateSingletons(DefaultListableBeanFactory.java:429)
>         at
> org.springframework.context.support.AbstractApplicationContext.finish
> BeanFactoryInitialization(AbstractApplicationContext.java:729)
>         at
> org.springframework.context.support.AbstractApplicationContext.refres
> h(AbstractApplicationContext.java:381)
>         at
> org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>
> (ClassPathXmlApplicationContext.java:161)
>         at
> org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>
> (ClassPathXmlApplicationContext.java:51)
>         at org.apache.servicemix.Main.main(Main.java:53)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> org.codehaus.classworlds.Launcher.launchStandard(Launcher.java:410)
>         at org.codehaus.classworlds.Launcher.launch(Launcher.java:344)
>         at org.codehaus.classworlds.Launcher.main(Launcher.java:461)
> 
> How can I write AMQP/Rabbittransport for ServiceMix? Is there any
> documentation, specification, guides or examples?
> 

It also throws following exception:

ERROR - Service                        - Async error occurred:
javax.jms.JMSExce
ption: Invalid acknowledgment: MessageAck {commandId = 8, responseRequired =
fal
se, ackType = 3, consumerId = ID:eon-developer-1374-1229263521218-2:3:-1:2,
firs
tMessageId = ID:eon-developer-1374-1229263521218-1:0:0:0:441, lastMessageId
= ID
:eon-developer-1374-1229263521218-1:0:0:0:441, destination =
topic://ActiveMQ.Ad
visory.Consumer.Topic.org.apache.servicemix.JCAFlow, transactionId = null,
messa
geCount = 1}
javax.jms.JMSException: Invalid acknowledgment: MessageAck {commandId = 8,
respo
nseRequired = false, ackType = 3, consumerId =
ID:eon-developer-1374-12292635212
18-2:3:-1:2, firstMessageId =
ID:eon-developer-1374-1229263521218-1:0:0:0:441, l
astMessageId = ID:eon-developer-1374-1229263521218-1:0:0:0:441, destination
= to
pic://ActiveMQ.Advisory.Consumer.Topic.org.apache.servicemix.JCAFlow,
transactio
nId = null, messageCount = 1}
        at
org.apache.activemq.broker.region.TopicSubscription.acknowledge(Topic
Subscription.java:216)
        at
org.apache.activemq.broker.region.AbstractRegion.acknowledge(Abstract
Region.java:364)
        at
org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBrok
er.java:470)
        at
org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionB
roker.java:194)
        at
org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java
:73)
        at
org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java
:73)
        at
org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBro
kerFilter.java:84)
        at
org.apache.activemq.broker.TransportConnection.processMessageAck(Tran
sportConnection.java:443)
        at org.apache.activemq.command.MessageAck.visit(MessageAck.java:196)
        at
org.apache.activemq.broker.TransportConnection.service(TransportConne
ction.java:292)
        at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportC
onnection.java:180)
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilt
er.java:68)
        at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireForm
atNegotiator.java:143)
        at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityM
onitor.java:206)
        at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSup
port.java:84)
        at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.jav
a:196)
        at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:
183)
        at java.lang.Thread.run(Thread.java:619)
-- 
View this message in context: http://www.nabble.com/Polling-message-from-RabbitMQ-by-servicemix.-tp20849425p21000693.html
Sent from the RabbitMQ mailing list archive at Nabble.com.





More information about the rabbitmq-discuss mailing list