[英]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.