1

我曾经能够在 RAD 7.5.5 上使用 JNDI 运行调用 EJB 和 MQ 的独立 Java 应用程序。我升级到 RAD 8.5,当我尝试运行它时,我收到了错误Failed to create InitialContext using factory specified in hashtable。我还在为两个 RAD 版本使用相同的 WAS 7.0.0.9,所以我不确定为什么它现在不起作用。

在 RAD 8.5 中我需要做什么特别的事情吗?这是我的引导类路径条目:WAS v7.0 JRE, %WAS_RUNTIME%\com.ibm.ws.ejb.thinclient_7.0.0.jar, WAS v7.0 lib.

以下是我设置环境的行(RAD 8.5 似乎需要第二行):

System.setProperty(Context.PROVIDER_URL, "iiop://localhost:2809");
System.setProperty("com.ibm.ws.naming.wsn.factory.initial", "com.ibm.websphere.naming.WsnInitialContextFactory");

下面是我的代码中的堆栈跟踪:

2012-11-30 16:50:14,945 main FATAL ram.hs.edi.EDIDaemon(line 183) - Unable to get running status: javax.naming.NoInitialContextException: Failed to create InitialContext using factory specified in hashtable. Root exception is java.lang.NullPointerException
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:243)
at javax.naming.InitialContext.initializeDefaultInitCtx(InitialContext.java:327)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:357)
at javax.naming.InitialContext.internalInit(InitialContext.java:295)
at javax.naming.InitialContext.<init>(InitialContext.java:212)
at ram.hs.edi.utils.MQReader.open(MQReader.java:85)
at ram.hs.edi.EDIDaemon.isRunning(EDIDaemon.java:406)
at ram.hs.edi.EDIDaemon.run(EDIDaemon.java:168)
at ram.hs.edi.EDIDaemon.main(EDIDaemon.java:898)
Caused by: java.lang.NullPointerException
at com.ibm.ws.naming.util.CommonHelpers$2.run(CommonHelpers.java:268)
at com.ibm.ws.naming.util.CommonHelpers$2.run(CommonHelpers.java:264)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:63)
at com.ibm.ws.naming.util.CommonHelpers.mergeJndiProviderProperties(CommonHelpers.java:263)
at com.ibm.ws.naming.util.CommonHelpers.mergeWsnJndiProperties(CommonHelpers.java:159)
at com.ibm.websphere.naming.WsnInitialContextFactory.getInitialContext(WsnInitialContextFactory.java:186)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:235)
... 8 more

谢谢

4

1 回答 1

0

回答这个问题可能有点晚,但请尝试执行以下操作: 1) 在独立 Java 类的引导路径中添加 jar“com.ibm.ws.orb_7.0.0.jar”或等效 jar。2) 在 JVM 类路径上添加 jar“com.ibm.ws.webservices.thinclient_7.0.0”或等效 jar。

完成上述操作后,我能够成功获取 InitalContext。希望这可以帮助。

于 2014-03-14T14:08:40.850 回答