Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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 如何查找远程JNDI_Java_Jms_Jndi_Ibm Mq_Mq - Fatal编程技术网

Java 如何查找远程JNDI

Java 如何查找远程JNDI,java,jms,jndi,ibm-mq,mq,Java,Jms,Jndi,Ibm Mq,Mq,是否可以在IBM MQ中查找远程JNDI。我的场景是,我在机器A上安装了一个MQ,带有JNDI资源(MQ资源管理器中的JMS管理对象)。现在,如果我想从独立JAVA类通过JMS连接到MQ,我可以从file://JNDI_FACTORY". 所有例子都只提到这一点。但是,如果我想在机器B上使用独立的JAVA类,有可能吗?也就是说,机器B有一个JAVA类,它必须连接到远程JNDI(在机器A上),并查找连接工厂。我是否可以在机器B的java类中为属性ContextProviderUrl使用“A:por

是否可以在IBM MQ中查找远程JNDI。我的场景是,我在机器A上安装了一个MQ,带有JNDI资源(MQ资源管理器中的JMS管理对象)。现在,如果我想从独立JAVA类通过JMS连接到MQ,我可以从file://JNDI_FACTORY". 所有例子都只提到这一点。但是,如果我想在机器B上使用独立的JAVA类,有可能吗?也就是说,机器B有一个JAVA类,它必须连接到远程JNDI(在机器A上),并查找连接工厂。我是否可以在机器B的java类中为属性ContextProviderUrl使用“A:port的主机名”之类的东西,从机器A访问远程对象

还建议我进行远程JNDI查找

请帮忙


感谢CHAKRI

为简单起见,所有MQ JMS示例都使用文件JNDI来演示初始上下文的使用。您可以修改示例以查找LDAP服务器中的连接工厂和目标信息

首先,在MQExplorer中,您需要选择
LDAP服务器
选项将连接工厂和目标信息保存到LDAP服务器。然后,在应用程序中,您需要具有如下代码:

  String initialContextUrl = "ldap://myhost:991/c=uk,o=ACME"
  String contextFactory = "com.sun.jndi.ldap.LdapCtxFactory";
  Hashtable environment = new Hashtable();
  environment.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
  environment.put(Context.PROVIDER_URL, initialContextUrl);
  Context context = new InitialDirContext(environment);

有关详细信息和其他代码示例,请参见信息中心主题。

为简单起见,所有MQ JMS示例都使用文件JNDI来演示初始上下文的用法。您可以修改示例以查找LDAP服务器中的连接工厂和目标信息

首先,在MQExplorer中,您需要选择
LDAP服务器
选项将连接工厂和目标信息保存到LDAP服务器。然后,在应用程序中,您需要具有如下代码:

  String initialContextUrl = "ldap://myhost:991/c=uk,o=ACME"
  String contextFactory = "com.sun.jndi.ldap.LdapCtxFactory";
  Hashtable environment = new Hashtable();
  environment.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
  environment.put(Context.PROVIDER_URL, initialContextUrl);
  Context context = new InitialDirContext(environment);

有关详细信息和其他代码示例,请参见信息中心主题。

是,T.Rob。这是我在etc/hosts文件中为SO输入的一个问题。我删除了条目,然后回来了。还有一件事是,我使用MQexplorer处理队列管理器,当我使用JMS和JNDI查找连接到MQ时,使用qcf.createQueueConnection();我收到了“JMSWMQ2013:为QueueManager提供的安全身份验证无效”错误,所有帖子/博客都提到了此错误,但他们说要删除QueueManager的CHAUTH等等。。。如何使用MQExplorer解决此问题,请在此方面帮助我实际上不建议禁用CHLAUTH,因为这样做将打开您的队列管理器。如果这是一个测试队列管理器,就可以了。使用runmqsc可以禁用通道身份验证。在runmqsc中发出“ALTER QMGR CHLAUTH(DISABLED)”命令以禁用通道身份验证。是,T.Rob。这是我在etc/hosts文件中为SO输入的一个问题。我删除了条目,然后回来了。还有一件事是,我使用MQexplorer处理队列管理器,当我使用JMS和JNDI查找连接到MQ时,使用qcf.createQueueConnection();我收到了“JMSWMQ2013:为QueueManager提供的安全身份验证无效”错误,所有帖子/博客都提到了此错误,但他们说要删除QueueManager的CHAUTH等等。。。如何使用MQExplorer解决此问题,请在此方面帮助我实际上不建议禁用CHLAUTH,因为这样做将打开您的队列管理器。如果这是一个测试队列管理器,就可以了。使用runmqsc可以禁用通道身份验证。在runmqsc中发出“ALTER QMGR CHLAUTH(DISABLED)”命令以禁用通道身份验证。