如何解决非消息驱动 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 举报,一经查实,本站将立刻删除。