【问题标题】:How to access the JNDI namespace defined in the Websphere 7.0 from outside of the container?如何从容器外部访问 Websphere 7.0 中定义的 JNDI 命名空间?
【发布时间】:2012-04-02 03:43:49
【问题描述】:

我正在尝试使用 iiop 协议从容器外部查找在 Websphere 应用服务器 7.0 上定义的资源,如下所示:

(RMI 客户端)Test.jar 的 Java 代码:

public static void main(String[] args){
Hashtable<Object, Object> properties = new Hashtable<Object, Object>();
properties.put(Context.INITIAL_CONTEXT_FACTORY, 
        "com.ibm.websphere.naming.WsnInitialContextFactory"); 
           properties.put(Context.PROVIDER_URL, "iiop://localhost:2809"); 
InitialContext intCt;
try {
       InitialContext initCtx = new InitialContext(properties);
       Object obj = intCt.lookup(JNDI_NAME);
     }catch (NamingException namingE) {
            System.out.println("Naming Exception occurred :");
            namingE.printStackTrace();
        }   
}

Cmmand 文件调用Test.jar:

设置 appClassPath=C:\WebSphere\AppServer7.0\deploytool\itp\plugins\com.ibm.websphere.v7_7.0.1.v20090422_1423\wasJars\naming.jar;C:\WebSphere\AppServer7.0\deploytool\itp\plugins \com.ibm.websphere.v7_7.0.1.v20090422_1423\wasJars\namingclient.jar;C:\WebSphere\AppServer7.0\properties;C:\Batch\CommandFiles\JobServer\Test.jar C:\WebSphere\AppServer7.0\java\jre\bin\java -jar -cp "%appClassPath%" C:\Batch\CommandFiles\JobServer\Test.jar %Parameters%

注意:请不要说我在本地机器上运行客户端,引导主机是:localhost,端口是 2809。

在从命令文件运行 Test.jar 代码时,我收到以下错误:

javax.naming.NoInitialContextException:无法使用哈希表中指定的工厂创建 InitialContext {java.naming.provider.url=iiop://localhost:2809, java.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory} [根异常是 java.lang.NullPointerException] 在 javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:243) 在 javax.naming.InitialContext.initializeDefaultInitCtx(InitialContext.java:327) 在 javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:357) 在 javax.naming.InitialContext.internalInit(InitialContext.java:295) 在 javax.naming.InitialContext.(InitialContext.java:212) 在 com.uuic.ets.rmi.server.client.Client.main(Client.java:130) 引起:java.lang.NullPointerException 在 javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:235) ... 5 更多

我不知道为什么这段代码不能实例化InitialContext(Hashmap env)。相同的代码在 Websphere 应用程序服务器 5.1 版中运行,但在 Websphere 应用程序服务器 7.0 版中出现问题。

【问题讨论】:

    标签: java jndi websphere-7


    【解决方案1】:

    不支持将 WAS_HOME/deploytool 中的 JAR 用于类路径。尝试将记录在案的 EJB thinclient 与 WAS_HOME/runtimes/com.ibm.ws.ejb.thinclient_7.0.0.jar 一起使用。

    【讨论】:

    • 在哪里可以找到 IIOP 端口和主机名?在 WAS8 管理控制台的某个地方?
    • @GovindaSakare 大概是的,但是我已经好几年没有使用 WAS 了。如果找不到,我建议您提出一个新问题,而不是评论一个 7 年前的答案。
    猜你喜欢
    • 2013-11-07
    • 2016-11-02
    • 1970-01-01
    • 2010-09-07
    • 2015-01-08
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多