我曾经能够运行我的独立Java应用程序,它使用RAD 7.5.5上的JNDI调用EJB和MQ。我升级到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
由于
答案 0 :(得分:0)
这可能是迟到的回答,但请尝试执行以下操作: 1)在独立Java类的Bootstrap路径上添加jar“com.ibm.ws.orb_7.0.0.jar”或等效的jar。 2)在JVM类路径上添加jar“com.ibm.ws.webservices.thinclient_7.0.0”或等效的jar。
完成上述操作后,我成功获得了InitalContext。希望这会有所帮助。