消息驱动的bean是否需要激活规范?

时间:2016-08-08 13:40:02

标签: java-ee ejb websphere-liberty ejb-3.2

我有一个非JMS MDB,我正在安装到Websphere Liberty服务器中。

package mdb.test;

import javax.ejb.MessageDriven;

@MessageDriven()
public class TheMDB implements MyOwnListener {

  public TheMDB() {}

  @Override
  public void onMyOwnMessage(MyOwnMessage message) {}

}

如果没有进一步配置,服务器会给出以下消息:

  

[警告] CNTR4015W:由于TheMDB激活规范不可用,无法激活mdb.test/TheMDB消息驱动Bean的消息端点。在激活规范可用之前,消息端点将不会接收消息。

MDB必须具有激活规范吗?我希望它只是被激活,而不必向服务器添加进一步的配置。

2 个答案:

答案 0 :(得分:2)

本质上,服务器告诉您它找到了一个消息端点,但没有任何消息传递给它。您需要添加激活规范(JMS或JCA)以允许bean接收消息。有关定义JCA激活规范的一些信息:

http://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/twlp_jca_config_actspec.html

我不知道如果没有绑定到激活规范就激活bean的方法。由于其功能是处理消息,因此没有激活规范就没什么用处。您可能需要假设足够的RA来编码激活规范以取得进展,即使它尚未生成消息。

答案 1 :(得分:0)

用作消息端点的Java EE消息驱动Bean必须使用在JCA 1.5(或更高版本)资源适配器配置(ra.xml)中定义的ActivationSpecification进行部署。