我正在研究jms base wildfly应用程序(wildfly 8,java 7)。我必须使用基于Rx Java的事件驱动库。我想从偶数监听器发送jms消息,我必须提供给库函数。问题是用于发送jms消息的基于标准EJB的机制在Rx Java处理程序内部不起作用。通常的猜测是我不能在Rx Java流中注入/使用基于注释的EJB jms机制,因为它们不是由EJB容器生成的(或者将EJB bean作为Rx Java处理程序传递)。我曾尝试从像this这样的教程之后的独立Java应用程序发送来自EJB单例的jms消息。这种方法的问题在于,wildfly的独立实例无法找到索引工厂org.jboss.naming.remote.client.InitialContextFactory
的依赖项。或者,如果我尝试添加maven依赖
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-jms-client-bom</artifactId>
<version>${version.wildfly}</version>
<type>pom</type>
</dependency>
到我的应用胖罐。任何想法都会受到高度赞赏,因为我对EJB的理解非常缺乏。
答案 0 :(得分:1)
您可以在没有依赖注入的情况下使用EJB来查找InitialContext。
在编写Singleton EJB之后,您需要知道JNDI注册表中的&#34; EJB名称&#34;之后你可以这样做:
Context ctx = new InitialContext()
MyStatlessBeanInterface bean = ctx.lookup("FULL NAME BEAN");
bean.sendJMSMessage();
Wilfly在部署时在控制台中输出EJB名称,但您可以在以下位置阅读约定:
install your dependencies automatically
您还可以在以下位置获取有关查找的更多信息: