2

我有一个要安装到 Websphere Liberty 服务器中的非 JMS MDB。

package mdb.test;

import javax.ejb.MessageDriven;

@MessageDriven()
public class TheMDB implements MyOwnListener {

  public TheMDB() {}

  @Override
  public void onMyOwnMessage(MyOwnMessage message) {}

}

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

[警告] :无法激活消息驱动 beanCNTR4015W的消息端点,因为激活规范不可用。在激活规范可用之前,消息端点不会接收消息。TheMDBmdb.test/TheMDB

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

4

2 回答 2

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 来对激活规范进行编码以取得进展,即使它还没有产生消息。

于 2016-08-08T14:37:48.843 回答
0

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

于 2016-08-10T15:01:45.903 回答