繁体   English   中英

从Wildfly发送JMS消息

[英]Sending jms messages from wildfly

我正在开发基于jms的wildfly应用程序(wildfly 8,java 7)。 我必须使用基于Rx Java的事件驱动的库。 我想从甚至必须向库函数提供的侦听器发送jms消息。 问题在于,用于发送jms消息的基于EJB的标准机制无法在Rx Java处理程序内部运行。 疯狂的猜测是,我无法在Rx Java流中注入/使用基于注释的EJB jms机制,因为它们不是由EJB容器产生的(或将EJB bean作为Rx Java处理程序传递)。 我试图从EJB单发送JMS消息从下面的教程一样独立的Java应用 这种方法的问题在于,wildfly的独立实例找不到索引工厂org.jboss.naming.remote.client.InitialContextFactory依赖项。 否则,如果我尝试添加Maven依赖项,Wildfly甚至不会部署

<dependency>
    <groupId>org.wildfly</groupId>
    <artifactId>wildfly-jms-client-bom</artifactId>
    <version>${version.wildfly}</version>
    <type>pom</type>
</dependency>

到我的应用胖子罐。 任何想法都将不胜感激,因为我在此问题上对EJB的了解非常缺乏。

您可以使用EJB,而无需进行依赖项注入来查找InitialContext。

在对Singleton EJB进行编码之后,您需要知道“ JNDI注册表上的EJB名称”,然后可以执行以下操作:

Context ctx = new InitialContext()
MyStatlessBeanInterface bean = ctx.lookup("FULL NAME BEAN"); 
bean.sendJMSMessage();

Wilfly在部署时在控制台中打印EJB名称,但是您可以在以下内容中了解约定:

https://docs.jboss.org/author/display/AS71/JNDI+Reference

您还可以在以下位置获得有关查找的更多信息:

https://docs.oracle.com/cd/E16439_01/doc.1013/e13981/usclient003.htm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM