Jdbc 从托管在WebSphereAppServer中的EclipseOSGibundle中访问JNDI
我在从OSGI捆绑包中访问JNDI资源时遇到问题,该捆绑包位于 WebSphereApplicationServer(WAS)使用servlet桥 它无法创建JNDI初始上下文。我的代码是: Hashtable env=新的Hashtable() 环境放置(Context.INITIAL\u Context\u工厂, “com.ibm.websphere.naming.WsnInitialContextFactory”) InitialContext ctx=新的InitialContext(env) 这在以下情况下失败: javax.naming.NoInitialContextException: 无法使用哈希表{java.naming.provider.url=corbaloc:rir:/nameserverroot,java.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory,java.naming.factory.url.pkgs=com.ibm.ws.naming:com.ibm.ws.runtime:com.ibm.iscportal.jndi}中指定的工厂创建InitialContext[根异常为java.lang.NullPointerException] 当我直接在WAR模块中运行相同的代码(不使用OSGI)时,它是成功的。因此,我假设问题在于从OSGI中访问JNDI 在OSGI中访问JNDI时,我看到一些关于类装入器问题的引用…不确定这是否是我的问题,因为上面的异常与类装入没有明确的关系,但可能是。无论如何,如果这是问题,我不确定如何修复它 实际上是否可以从我的OSGI模块中访问WAS中设置的JNDI和JDBC条目 我的应用程序是一个Eclipse RAP(富Ajax插件),使用Eclipse WAR产品工具打包到WAR文件中,描述如下: 到目前为止,除了JNDI访问之外,它还可以成功地工作 非常感谢Jdbc 从托管在WebSphereAppServer中的EclipseOSGibundle中访问JNDI,jdbc,websphere,osgi,jndi,Jdbc,Websphere,Osgi,Jndi,我在从OSGI捆绑包中访问JNDI资源时遇到问题,该捆绑包位于 WebSphereApplicationServer(WAS)使用servlet桥 它无法创建JNDI初始上下文。我的代码是: Hashtable env=新的Hashtable() 环境放置(Context.INITIAL\u Context\u工厂, “com.ibm.websphere.naming.WsnInitialContextFactory”) InitialContext ctx=新的InitialContext(e
David默认情况下,线程上下文类加载器将用于加载InitialContextFactory。这可能是(但不保证)您的包的类加载器。您有两个选项:
祝你好运。这可能无法解决你的问题(因此它是以注释的形式出现的),但我会丢失
env.put(context.INITIAL_context_FACTORY…
line。初始上下文工厂类的名称通常已经由运行时环境提供。谢谢,我认为您不需要该行是正确的,因为默认情况下假定该值,但去掉它并不能解决问题。