如何启动messageDrivenBean

时间:2011-10-27 14:18:30

标签: java-ee ejb message-driven-bean

我有一个Web应用程序,在服务器部分内部我创建了一个MessageDrivenBean,以便通过JMS接收消息。

@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue =  javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/toServer"), })
public class JMSWatcher implements MessageListener {
...
...
public void onMessage(Message message) {
   ....
}

但即使我将消息发送到像配置一样的队列/ toServer,也永远不会调用onMessage方法。

我是否需要从客户端应用程序中调用此bean一次,还是需要将该类放在任何配置xml文件中?

谢谢, Hauke

PS:我在JMSWatcher类的默认构造函数中放了一些日志消息,但它也会显示出来。

1 个答案:

答案 0 :(得分:0)

我正在使用JBoss 7.0.2所以我使用HornetQ作为JMS服务器。我正确配置了JMS队列,因为我可以毫无问题地将消息发送到队列,并且如果我以旧方式(没有MDB)这样做就可以接收它们。

我正在使用Eclipse并使用maven构建项目。我有一个与服务器和客户端模块一起部署的ear文件。

外部进程会向队列发送消息(有效)。

我认为如果我在constrcutor中部署一些调试消息并部署我的ear文件,那么我应该在部署一次后看到这条消息。

我不需要将MDB放在任何xml文件中,就像web.xml中web-project上的ServletContextListener一样?

我正在使用JSF 2,所以我不需要将那个bean放在我的faces-config.xml中?我根本没有使用faces-config.xml。(