Java 从wildfly发送jms消息

Java 从wildfly发送jms消息,java,jboss,rx-java,wildfly,ejb-3.0,Java,Jboss,Rx Java,Wildfly,Ejb 3.0,我正在开发基于jms的wildfly应用程序(wildfly 8,Java7)。我必须使用基于RXJava的事件驱动库。我想从我必须提供给库函数的侦听器上发送jms消息。问题在于,用于发送jms消息的基于EJB的标准机制无法从RXJava处理程序内部工作。我的猜测是,我不能在rxjava流中注入/使用基于注释的ejbjms机制,因为它们不是由EJB容器生成的(或者将ejbbean作为rxjava处理程序传递)。我尝试过从EJB单例发送jms消息,就像从独立java应用程序发送jms消息一样,遵循

我正在开发基于jms的wildfly应用程序(wildfly 8,Java7)。我必须使用基于RXJava的事件驱动库。我想从我必须提供给库函数的侦听器上发送jms消息。问题在于,用于发送jms消息的基于EJB的标准机制无法从RXJava处理程序内部工作。我的猜测是,我不能在rxjava流中注入/使用基于注释的ejbjms机制,因为它们不是由EJB容器生成的(或者将ejbbean作为rxjava处理程序传递)。我尝试过从EJB单例发送jms消息,就像从独立java应用程序发送jms消息一样,遵循类似教程的步骤。这种方法的问题是,wildfly的独立实例无法找到索引工厂
org.jboss.naming.remote.client.InitialContextFactory
的依赖项。或者,如果我尝试添加maven依赖项,wildfly甚至不会部署


野生蝇
wildfly jms客户端bom
${version.wildfly}
聚甲醛

到我的应用程序胖罐。如果您有任何想法,我将不胜感激,因为我对EJB的理解在这方面非常缺乏。

您可以使用EJB,而无需依赖注入来查找初始上下文

编写单例EJB代码后,您需要知道“JNDI注册表上的EJB名称”,然后可以执行以下操作:

Context ctx = new InitialContext()
MyStatlessBeanInterface bean = ctx.lookup("FULL NAME BEAN"); 
bean.sendJMSMessage();
Wilfly在部署时在控制台中打印EJB名称,但您可以在以下内容中阅读有关约定的内容:

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