作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试订阅在 JBoss AS7 服务器上运行的 HornetQ 实例。我已经设法连接并发布/接收消息与存在于应用程序服务器外部的测试应用程序,但是当我尝试运行部署在服务器内部的类似示例时在我的消息订阅者类中创建 InitialContext
实例时出现以下异常:
javax.naming.NamingException: JBAS011843: Failed instantiate InitialContextFactory org.jboss.naming.remote.client.InitialContextFactory from classloader ModuleClassLoader for Module "deployment.Test.war:main" from Service Module Loader
at org.jboss.as.naming.InitialContextFactoryBuilder.createInitialContextFactory(InitialContextFactoryBuilder.java:64)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:681)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.init(InitialContext.java:242)
at javax.naming.InitialContext.<init>(InitialContext.java:216)
at uk.co.test.MessageSubscriber.startSubscription(MessageSubscriber.java:127)
at uk.co.test.MessageSubscriber.access$0(MessageSubscriber.java:114)
at uk.co.test.MessageSubscriber$1.run(MessageSubscriber.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
这是我尝试创建上下文的代码(为清楚起见,我排除了实际的订阅、主题设置代码等):
String factoryName = "jms/RemoteConnectionFactory";
String topicName = "jms/topic/test";
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
props.put(Context.PROVIDER_URL, "remote://server:4447");
props.put(Context.SECURITY_PRINCIPAL, "testuser");
props.put(Context.SECURITY_CREDENTIALS, "password");
props.put("jboss.naming.client.ejb.context", true);
InitialContext context = new InitialContext(props); // Exception
当我远程连接到服务器时,上下文创建工作正常,所以我假设有一种不同的方法来发现我忽略的 HornetQ。或者我可能在某处缺少依赖项,或者这是一个一般的配置问题......无论哪种方式,我都在努力寻找任何可以用来插入这一点的例子。
有什么地方出错了吗?
谢谢。
最佳答案
我认为以下内容足以进行本地连接:
InitialContext jndiContext = new InitialContext();
QueueConnectionFactory qf = (QueueConnectionFactory) jndiContext.lookup( "java:/ConnectionFactory" );
当连接工厂定义为
<jms-connection-factories>
<connection-factory name="InVmConnectionFactory">
<connectors>
<connector-ref connector-name="in-vm"/>
</connectors>
<entries>
<entry name="ConnectionFactory"/>
</entries>
</connection-factory>
</jms-connection-factories>
关于java - 如何从同一应用服务器上运行的应用程序中查找 HornetQ 实例? (AS7)(无法实例化 InitialContextFactory),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19856836/
我是一名优秀的程序员,十分优秀!