Jboss 5.1 ActiveMQ 5独立代理MDB设置

时间:2010-08-24 02:47:09

标签: jms activemq jboss5.x message-driven-bean jboss-mdb

我正在尝试使用ActiveMQ 5附带的示例代理,并在JBoss 5.1 AS上部署了MDB。

我已将activemq rar部署到deploy目录。 我已经部署了activemq-jms-ds.xml来部署/消息传递,它定义了我的连接工厂。 我让代理在localhost上运行:61616,如connectionfactory config中所定义。

但是当我尝试将我的MDB部署到jboss时,我得到了这个错误。

21:40:17,328 ERROR [JmsActivation] Unable to reconnect  org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@1332207(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@14e7167 destination=MATT.TEST destinationType=javax.jms.Queue tx=true durable=false reconnect=10 provider=java:/DefaultJMSProvider user=null maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=true DLQHandler=org.jboss.resource.adapter.jms.inflow.dlq.GenericDLQHandler DLQJndiName=queue/DLQ DLQUser=null DLQMaxResent=5)
javax.naming.NameNotFoundException: MATT.TEST not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
at org.jnp.server.NamingServer.getObject(NamingServer.java:785)
at org.jnp.server.NamingServer.lookup(NamingServer.java:443)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:726)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at org.jboss.util.naming.Util.lookup(Util.java:222)
at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupDestination(JmsActivation.java:464)
at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:352)
at org.jboss.resource.adapter.jms.inflow.JmsActivation.handleFailure(JmsActivation.java:292)
at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:733)
at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:205)
at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260)
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)

我现在真的开始使用标准代理,因为我不想定义客户端将消息放入队列。我更喜欢使用示例代理附带的Web控制台。是否有一些我缺失的东西,因为我似乎无法弄清楚什么是错的。

注意:我已尝试The ActiveMQ Jboss setup guide但我担心ActiveMQ 4过时了。

2 个答案:

答案 0 :(得分:1)

我发现答案埋在 this forum post内。

按照上面的教程,你需要在类定义之前的@MessageDriven枚举之外的MDB类顶部添加@ResourceAdapter(“your-activemq-rar-name.rar”)。这告诉部署者将ActiveMQ资源适配器与EJB打包在一起。请注意,在查看论坛之前搜索jboss文档至少3个小时后,我没有看到@ResourceAdapter提到过!我希望这可以为我节省很多头疼的事。

答案 1 :(得分:1)

任何遇到此问题的人都可能想查看this post。所以,这么简单。没有数据源文件,没有配置ra.xml。