【问题标题】:Is it posible to connect wildfly with RabbitMQ (amqp)?可以将 Wildfly 与 RabbitMQ (amqp) 连接起来吗?
【发布时间】:2017-08-16 04:33:57
【问题描述】:

我正在做概念验证,但我无法收听 Wildfly 的消息。有谁知道这是可能的吗?我已经尝试了很多天:C

【问题讨论】:

  • 嗨,Cesar,您是否找到了另一种从 Wildfly 收听 RabbitMQ 目的地的解决方案?

标签: rabbitmq wildfly


【解决方案1】:

您可以在 Wildfly 上运行的应用程序中使用 RabbitMQ JMS Client

您只需使用 CDI 生产者(如果您的应用是 JEE)手动生成 RabbitMQ JMS ConnectionFactory 和 Destination 对象,或者通过从 RabbitMQ JMS 客户端 1.7.0 版本开始的 JNDI 绑定配置。

对于 Wildfly JNDI 绑定配置,您可以查看 RabbitMQ JMS Client 文档和 Wildfly Naming Subsystem configuration

然后您可以在您的应用程序中使用 @Resource 注入 JMS 连接工厂和目标对象。请注意,您还必须将 JMS 客户端库放在 Wildfly global-modules

中声明的 jboss-module 中

最后,如果您想注册消息侦听器,您可以尝试手动执行此操作,方法是创建实现 JMS MessageListener 接口的侦听器并借助 setMessageListener 方法(加上 CDI 管道)手动将侦听器注册到 RabbitMQ 队列。事实上,目前还无法将消息驱动 Bean 与当前版本的 RabbitMQ JMS 客户端一起使用。有关详细信息,请参阅this post。 但是我不确定最后一个是否可以在 Wildfly(待测试)中工作,根据 javadoc,此方法会引发 JMS 异常:

如果 JMS 提供程序由于以下原因之一未能设置 MessageConsumer 的 MessageListener:发生内部错误或在 Java EE Web 或 EJB 应用程序中调用了此方法(尽管不能保证会引发异常在这种情况下)

另外,也许这最适合从 WEB 配置文件开始的 Wildfly,而不是 Java EE 7 完整配置文件?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-25
    • 2020-08-18
    • 1970-01-01
    • 2015-02-08
    • 2021-06-10
    • 2022-06-14
    • 1970-01-01
    • 2018-02-15
    相关资源
    最近更新 更多