当前位置: 首页 > 知识库问答 >
问题:

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

锺离霖
2023-03-14
package mdb.test;

import javax.ejb.MessageDriven;

@MessageDriven()
public class TheMDB implements MyOwnListener {

  public TheMDB() {}

  @Override
  public void onMyOwnMessage(MyOwnMessage message) {}

}

[警告]CNTR4015W:由于mdb.test/themdb激活规范不可用,因此无法激活themdb消息驱动bean的消息endpoint。在激活规范可用之前,消息endpoint将不会接收消息。

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

共有1个答案

佟英武
2023-03-14

本质上,服务器告诉您它创建了一个消息endpoint,但没有任何东西向它传递消息。您需要添加一个激活规范(JMS或JCA),以允许bean接收消息。关于html" target="_blank">定义JCA激活规范的一些信息:

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

我不知道有什么方法可以激活bean而不将其绑定到激活规范。由于它的功能是处理消息,所以如果没有激活规范,它几乎没有什么用处。您可能需要虚化足够多的RA来编写激活规范以取得进展,即使它还没有生成消息。

 类似资料:
  • 是否可以在MDB(消息驱动Bean)中为“目的地”动态分配运行时值? 我还尝试了ejb-jar.xml方法,但是“activation-config-property-name”=“destination”的值被理解为队列的文字物理名称。因此我无法对资源进行JNDI查找。 从属性读取和分配目标或使用-d参数传递值的正确方法是什么?

  • 在企业应用程序中,我试图使用netBeans 8.1将MessageDriven beans注入Web应用程序(到REST服务)。我在IDE中没有得到任何警告,但是,在部署时,我得到以下错误: 严重:加载应用程序时出现异常:CDI部署失败:Weld-001408:未满足类型StatisticsBean的依赖关系,其限定符@Default在注入点[BackedAnnotatedField]@Inje

  • 消息驱动Bean是一种企业bean,当EJB容器从队列或主题接收消息时由EJB容器调用。 消息驱动的bean是一个无状态bean,用于异步执行任务。 为了演示消息驱动bean的使用,我们将使用EJB-persistence章节,我们需要执行以下任务 - Step 1 - 在数据库中创建表(请参阅EJB-Persistence章节)。 Step 2 - 创建与表对应的实体类(请参阅EJB-Persi

  • 早上好在我的时区。 事先表示感谢并致以最良好的问候

  • 同事, 你能帮我解决以下问题吗? 我有JavaEE应用程序。它包含一些具有业务逻辑的消息驱动Bean和一些负责整个应用程序配置的不同方面的管理Bean。我想设置bean启动和初始化的顺序。这意味着在管理Bean完成应用程序的初始化之前,容器不应该调用消息驱动Bean。应用程序的初始化包括读取和解析一些配置文件,这需要一些时间。 有WebSphere配置选项吗? 或者它应该只以编程方式完成技巧?

  • 在一个无状态bean中,我正在查找队列,这是正确的,并且发送没有抛出异常: 但不调用消息驱动bean的onMessage方法。 我错过了什么? 我的消息驱动bean有以下代码: