通过从 Netty 事件循环注入 EJB 的 JMS 主题发布消息的正确方法是什么?
What is the correct way to publish a message over JMS topic which has been injected in an EJB from a Netty event loop?
我有一个 @Singleton
启动于 @Startup
的 EJB,此 bean 使用 netty 侦听多播流量。我想做的是,在通过多播收到消息后,发送关于注入主题的 JMS 消息(在 Wildfly 上,使用 JMS 2.0,我有以下内容:)
@Resource(lookup = "java:/jboss/exported/jms/topic/appUpdates")
private Topic appUpdate;
@Inject
private JMSContext context;
我知道主题和发布消息没有问题如果我在ejb 中有@Schedule
d 函数,我可以愉快地创建发布者并发送消息。但是,尝试从 netty 事件循环上下文发布 JMS 消息会导致:
2:10:34,441 ERROR [stderr] (nioEventLoopGroup-0-1)
java.lang.RuntimeException: javax.naming.NameNotFoundException:
java:comp/TransactionSynchronizationRegistry 12:10:34,441 ERROR
[stderr] (nioEventLoopGroup-0-1) at
org.jboss.as.messaging.deployment.JMSContextProducer$JMSContextWrapper.getDelegate(JMSContextProducer.java:217)
所以我的问题是,从比方说 非jboss 上下文(Netty 事件循环)发布到 JMS 主题的正确方法是什么?
编辑:我现在看到我试图让我的 bean 侦听多播流量实际上是在破坏 EJB 规范,所以,现在的问题是,除了编写资源适配器之外,是否有更简单的方法如何做到这一点?
(服务器:Wildfly 8.2。0.Final 使用独立-full.xml 配置)
我之前的回答是废话 - 正确的 方法是创建一个 JCA 资源适配器 - 我最终创建了它。现在我不再需要 JMS 主题,因为我的 MDB 直接侦听来自 inbound 连接的事件。
唯一的麻烦是关于如何使用 1.7 规范(使用注释)执行此操作的文档很少,因此必须查看用于 1.5 等的 xml 配置并应用适当的注释.
我有一个 @Singleton
启动于 @Startup
的 EJB,此 bean 使用 netty 侦听多播流量。我想做的是,在通过多播收到消息后,发送关于注入主题的 JMS 消息(在 Wildfly 上,使用 JMS 2.0,我有以下内容:)
@Resource(lookup = "java:/jboss/exported/jms/topic/appUpdates")
private Topic appUpdate;
@Inject
private JMSContext context;
我知道主题和发布消息没有问题如果我在ejb 中有@Schedule
d 函数,我可以愉快地创建发布者并发送消息。但是,尝试从 netty 事件循环上下文发布 JMS 消息会导致:
2:10:34,441 ERROR [stderr] (nioEventLoopGroup-0-1) java.lang.RuntimeException: javax.naming.NameNotFoundException: java:comp/TransactionSynchronizationRegistry 12:10:34,441 ERROR [stderr] (nioEventLoopGroup-0-1) at org.jboss.as.messaging.deployment.JMSContextProducer$JMSContextWrapper.getDelegate(JMSContextProducer.java:217)
所以我的问题是,从比方说 非jboss 上下文(Netty 事件循环)发布到 JMS 主题的正确方法是什么?
编辑:我现在看到我试图让我的 bean 侦听多播流量实际上是在破坏 EJB 规范,所以,现在的问题是,除了编写资源适配器之外,是否有更简单的方法如何做到这一点?
(服务器:Wildfly 8.2。0.Final 使用独立-full.xml 配置)
我之前的回答是废话 - 正确的 方法是创建一个 JCA 资源适配器 - 我最终创建了它。现在我不再需要 JMS 主题,因为我的 MDB 直接侦听来自 inbound 连接的事件。
唯一的麻烦是关于如何使用 1.7 规范(使用注释)执行此操作的文档很少,因此必须查看用于 1.5 等的 xml 配置并应用适当的注释.