我有一个 Web 应用程序尝试访问 WebSphere Application Server 中声明的 JNDI。 JNDI 在
Object pool managers
下声明。但是,当我访问池时收到错误。该错误表明 comp/env/pool is not found in context "java:"
。
我的代码写成如下:
InitialContext initialContext = new InitialContext();
ObjectPoolManager opm = (ObjectPoolManager)initialContext.lookup("java:comp/env/pool");
通过以下代码访问池是可行的:
ObjectPoolManager opm = (ObjectPoolManager)initialContext.lookup("pool");
我很困惑,因为根据我在互联网上找到的内容,
java:comp/env/
是JNDI的默认前缀。那么为什么它会在我的例子中导致错误呢?
谢谢!
如果您在 web.xml 的资源引用部分下声明了对对象池的引用,则只能使用 java:comp/env。
请参阅 web.xml 中的资源引用有何用途?以获取进一步说明。