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

Jakarta ee 消息驱动bean是否需要激活规范?,jakarta-ee,ejb,websphere-liberty,ejb-3.2,Jakarta Ee,Ejb,Websphere Liberty,Ejb 3.2,我有一个非JMS MDB,正在安装到WebSphereLiberty服务器中 package mdb.test; import javax.ejb.MessageDriven; @MessageDriven() public class TheMDB implements MyOwnListener { public TheMDB() {} @Override public void onMyOwnMessage(MyOwnMessage message) {} } 在没

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

package mdb.test;

import javax.ejb.MessageDriven;

@MessageDriven()
public class TheMDB implements MyOwnListener {

  public TheMDB() {}

  @Override
  public void onMyOwnMessage(MyOwnMessage message) {}

}
在没有进一步配置的情况下,服务器会发出以下消息:

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


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

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


我不知道有什么方法可以在不绑定激活规范的情况下激活bean。因为它的功能是处理消息,没有激活规范它就没有什么用处。您可能需要虚拟足够的RA来编写激活规范以取得进展,即使尚未生成消息。

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

是什么在生成MDB将使用的消息?您将如何通知MDB消息可用?它可能是我自己的资源适配器。然而,目前,我无法激活MDB,导致该消息。