微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

非消息驱动 bean 出现“未实现 1 个接口,也未指定消息侦听器接口”错误

如何解决非消息驱动 bean 出现“未实现 1 个接口,也未指定消息侦听器接口”错误

这是我第一次发帖。如果我没有遵守规则/标准/程序,我深表歉意。我遇到的问题如下:

我定义了以下无状态 bean:

@Stateless(name = "ReportQueueSenderBean",mappedname = "ReportQueueSenderBean")
@EJB(mappedname = "ReportQueueSenderBean",name = "ReportQueueSenderBean",beanInterface = ReportQueueSenderLocal.class,beanName = "ReportQueueSenderBean")
public class ReportQueueSenderBean implements ReportQueueSender,ReportQueueSenderRemote,ReportQueueSenderLocal
{
    etc
}

上述 bean 的接口定义如下:

public interface ReportQueueSender
{
    void addToQueue(ReportRequest repRequest,String clientid) throws Exception;
    int determineNumMessagesInQueue() throws JMSException;
}

@Remote
public interface ReportQueueSenderRemote extends ReportQueueSender
{
 //Marker interface
}

@Local
public interface ReportQueueSenderLocal extends ReportQueueSender
{
  //Marker interface
}

然后我实现了以下消息驱动的 bean:

@MessageDriven(activationConfig = {
    @ActivationConfigProperty(propertyName = "destination",propertyValue = 
    "queue/OnlineReportingEngineQueue"),@ActivationConfigProperty(propertyName = "destinationType",propertyValue = 
    "javax.jms.Queue")
})
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class ReportQueueReceiverBean implements MessageListener
{
    @Override
    public void onMessage(Message message)
    { 
      etc.
    }
   etc.
}

我在部署时收到以下错误

Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEJB0094: EJB 3.1 FR 5.4.2 MessageDrivenBean xxxxx.ReportQueueSenderBean 未实现 1 个接口,也未指定消息侦听器接口 在 org.jboss.as.ejb3.deployment.processors.MessageDrivenComponentDescriptionFactory.getMessageListenerInterface(MessageDrivenComponentDescriptionFactory.java:193) 在 org.jboss.as.ejb3.deployment.processors.MessageDrivenComponentDescriptionFactory.processMessageBeans(MessageDrivenComponentDescriptionFactory.java:154) 在 org.jboss.as.ejb3.deployment.processors.MessageDrivenComponentDescriptionFactory.processAnnotations(MessageDrivenComponentDescriptionFactory.java:83) 在 org.jboss.as.ejb3.deployment.processors.AnnotatedEJBComponentDescriptionDeploymentUnitProcessor.processAnnotations(AnnotatedEJBComponentDescriptionDeploymentUnitProcessor.java:50) 在 org.jboss.as.ejb3.deployment.processors.AbstractDeploymentUnitProcessor.deploy(AbstractDeploymentUnitProcessor.java:76) 在 org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:176) ……还有8个

奇怪的是,ReportQueueSenderBean 没有定义为消息驱动的 bean,但是我们得到了“MessageDrivenBean xxxxx.ReportQueueSenderBean 没有实现 1 个接口,也没有指定消息侦听器接口”错误。请问有什么想法吗?

我使用的是 jboss 版本: 版本:10.0.3.Final 产品:WildFly Full 18.0.1.Final

我相信使用 ejb 规范 3.1。

非常感谢任何建议。

谢谢, 维克。

附加信息:

  • ReportQueueSenderBean 和 ReportQueueReceiverBean 类都在同一个包中,并且是同一个 jar 文件的一部分。 ReportQueueSender 以及 ReportQueueSenderRemote 和 ReportQueueSenderLocal 接口也是如此。
  • ejb 描述符中没有将 ReportQueueSenderBean 描述为消息驱动 bean 的条目。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?