消息驱动的 bean 是否需要激活规范?
Are activation specs required for message-driven beans?
我有一个非 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) {}
}
没有进一步配置,服务器给出以下信息:
[WARNING ] CNTR4015W
: The message endpoint for the TheMDB
message-driven bean cannot be activated because the mdb.test/TheMDB
activation specification is not available. The message endpoint will not receive messages until the activation specification becomes available.
MDB 是否必须具有激活规范?我希望它只是被激活,而不必向服务器添加进一步的配置。
从本质上讲,服务器是在告诉您它找到了一个消息端点,但没有向它传递任何消息。您需要添加激活规范(JMS 或 JCA)以允许 bean 接收消息。关于定义 JCA 激活规范的一些信息:
我不知道有什么方法可以在不绑定到激活规范的情况下激活 bean。由于它的功能是处理消息,因此如果没有激活规范,它几乎没有用处。您可能需要虚拟化足够多的 RA 来编写激活规范以取得进展,即使它尚未生成消息也是如此。
Java 用作消息端点的 EE 消息驱动 Bean 必须 使用在 JCA 1.5(或更高版本)资源适配器中定义的 ActivationSpecification 进行部署配置(ra.xml)。
我有一个非 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) {}
}
没有进一步配置,服务器给出以下信息:
[WARNING ]
CNTR4015W
: The message endpoint for theTheMDB
message-driven bean cannot be activated because themdb.test/TheMDB
activation specification is not available. The message endpoint will not receive messages until the activation specification becomes available.
MDB 是否必须具有激活规范?我希望它只是被激活,而不必向服务器添加进一步的配置。
从本质上讲,服务器是在告诉您它找到了一个消息端点,但没有向它传递任何消息。您需要添加激活规范(JMS 或 JCA)以允许 bean 接收消息。关于定义 JCA 激活规范的一些信息:
我不知道有什么方法可以在不绑定到激活规范的情况下激活 bean。由于它的功能是处理消息,因此如果没有激活规范,它几乎没有用处。您可能需要虚拟化足够多的 RA 来编写激活规范以取得进展,即使它尚未生成消息也是如此。
Java 用作消息端点的 EE 消息驱动 Bean 必须 使用在 JCA 1.5(或更高版本)资源适配器中定义的 ActivationSpecification 进行部署配置(ra.xml)。