Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为JMS连接工厂查找指定初始上下文详细信息_Java_Jboss_Jms - Fatal编程技术网

Java 如何为JMS连接工厂查找指定初始上下文详细信息

Java 如何为JMS连接工厂查找指定初始上下文详细信息,java,jboss,jms,Java,Jboss,Jms,我在工作中遇到了这样一种情况:我需要为底层架构组件指定初始上下文名称,以便它可以帮助我将消息发布到JMS队列 如何指定确切的上下文工厂名称? 我推测这可能是基于google结果使用的字符串“org.jnp.interfaces.namingcontextfactory”。我想了解,以jboss服务器配置为起点,得出这个字符串的权威方法是什么 谢谢 Cinish初始上下文是对命名空间的引用,可以在其中查找JMS队列之类的对象。这是我不久前写的,你可能会觉得有用 对于远程jboss服务器,有3个基本

我在工作中遇到了这样一种情况:我需要为底层架构组件指定初始上下文名称,以便它可以帮助我将消息发布到JMS队列

如何指定确切的上下文工厂名称? 我推测这可能是基于google结果使用的字符串“
org.jnp.interfaces.namingcontextfactory
”。我想了解,以jboss服务器配置为起点,得出这个字符串的权威方法是什么

谢谢
Cinish

初始上下文是对命名空间的引用,可以在其中查找JMS队列之类的对象。这是我不久前写的,你可能会觉得有用

对于远程jboss服务器,有3个基本端口(使用默认端口):

  • java.naming.factory.initial:org.jnp.interfaces.NamingContextFactory
  • java.naming.factory.url.pkgs:org.jboss.naming:org.jnp.interfaces
  • java.naming.provider.url::1099
代码如下所示:

import javax.naming.*;
import javax.jms.*;
import java.util.*;
.....
Properties jndiProps = new Properties();
jndiProps.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
jndiProps.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
jndiProps.put("java.naming.provider.url", "localhost:1099");
Context ctx = new InitialContext(jndiProps);
Queue jmsQueue = (Queue)ctx.lookup("jndi-name-of-queue");
如果代码在jboss服务器中运行,则不需要这些属性,因为它们是隐式的

import javax.naming.*;
import javax.jms.*;
.....
Context ctx = new InitialContext(); // no properties needed
Queue jmsQueue = (Queue)ctx.lookup("jndi-name-of-queue");

欢迎来到苏。。请尝试在提问时包含一些相关代码。链接到您的教程将导致HTTP 404,对此表示抱歉。它很老了,还没有上市。@Nicholas我正在学习本教程。它描述了如何使用jms和glassfish服务器在两个客户机之间进行通信。本教程使用iiop://localhost:3700 作为提供者url。但是,代码无法连接,原因是:“无法连接到以下任何URL:iiop://localhost:3700" .... “无法连接到服务器iiop:1099”。知道什么是错误的吗?注意:当我尝试使用一个空构造函数作为本地服务器情况的上下文时,我还收到一个错误:javax.naming.NoInitialContextException:“需要在环境或系统属性中,或在应用程序资源文件中指定类名:java.naming.factory.initial”