jakarta-ee - JMS 消费者和消息驱动 Bean (MDB) 之间有什么区别

标签 jakarta-ee ejb jms java-ee-5 message-driven-bean

异步 JMS(Java 消息服务)消费者与实际 MDB(消息驱动 Bean)之间有什么区别。我看到的唯一区别是 MDB 类
@MessageDriven异步 JMS 使用者没有的注释。

还有什么我想念的吗?

最佳答案

在您的情况下,您的 MDB 充当 JMS 使用者。 MDB 是 EJB 特定术语,消费者是 JMS 术语。 JMS 使用者也可以是消息驱动的 POJO,即 不是 从技术上讲是 EJB。
对评论的回答
A1.是的,除非 JMS 使用者碰巧由 EJB 或 Spring 容器等容器管理,否则不能像 EJB 一样对普通 JMS 使用者进行池化/管理是正确的。
A2。 MDB 实际上只是满足了与 EJB 进行异步通信的要求。当它们基于 JMS 时,您的 MDB 在技术上是一个 JMS 消费者 以及。但是 MDB 也可以是非基于 JMS 的,例如:基于 JCA(Java 连接器架构)的 MDB。您可以查看此帖子以了解有关基于非 JMS 的 MDB 的更多详细信息:http://debupanda.blogspot.com/2006/08/using-ejb-30-message-driven-bean-with.html

关于jakarta-ee - JMS 消费者和消息驱动 Bean (MDB) 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5655673/

相关文章:

java - 向消费者提供队列中的消息,延迟 :Weblogic

java - 将 XML 发送到 JMS 时,我应该使用 TextMessage 还是 BytesMessage

java - 从数据库表中随机选择实体?

hibernate - 删除的对象将通过级联重新保存(从关联中删除删除的对象)

java - 使用 Arquillian 测试有状态 session Bean (arq-jbossas-remote)

jakarta-ee - Wildfly 上的 JMS 2.0 QueueBrowser 不返回消息

jsf - 带有 OSGi 的 Java EE 6 应用程序

web-services - Java EE 和 Grails : Communication with WebServices? 哪个框架?

从 ejb 调用 RabbitMQ 方法时出现 java.lang.NoClassDefFoundError

java - WSMQ 队列限制