我使用Liberty Profile v8.5.5.5(WebSphere Application Server8.5.5.5/wlp-1.0.8.cl50520150221-0034)IBMJ9 VM,版本pxa6470sr1-20120330_01(SR1)(en_US)
我已经安装了jndi功能。。。但无论我做什么,我都无法进行简单的JNDI查找。
在我server.xml
<jndiEntry jndiName="schoolOfAthens/defaultAdminUserName" value="plato" />
我的代码...(这只是几行的servlet)
Object jndiConstant = new InitialContext().lookup(
"schoolOfAthens/defaultAdminUserName");
但这在以下方面失败了:
javax。命名。NameNotFoundException:在上下文“serverlocal:CELLROOT/SERVERROOT”中找不到名称schoolOfAthens。
代码直接取自一个示例。
有什么想法吗?
我在本地运行这个,也尝试了我的Bluemix帐户...结果一样
8.5.5.6对我来说也一样,手头没有.5,但应该以同样的方式工作。
这是我的服务器。xml:
<server description="new server">
<!-- Enable features -->
<featureManager>
<feature>servlet-3.1</feature>
<feature>jndi-1.0</feature>
<feature>localConnector-1.0</feature>
</featureManager>
<!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
<httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/>
<applicationMonitor updateTrigger="mbean"/>
<webApplication id="JNDITest" location="JNDITest.war" name="JNDITest"/>
<jndiEntry jndiName="schoolOfAthens/defaultAdminUserName" value="plato" />
</server>
和servlet代码(看看你也可以使用@Resource
注释而不是查找):
@WebServlet("/JNDIServlet")
public class JNDIServlet extends HttpServlet {
@Resource(lookup="schoolOfAthens/defaultAdminUserName")
String jndiVariable;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
InitialContext ctx = new InitialContext();
Object object = ctx.lookup("schoolOfAthens/defaultAdminUserName");
System.out.println("object: " + object);
System.out.println("jndiVariable: " + jndiVariable);
} catch (NamingException e) {
e.printStackTrace();
}
}
}
输出:
object: plato
jndiVariable: plato
好吧,让这个工作。我添加了一个资源参考到我的web.xml,并像这样查找:
Object obj2 = ctx.lookup("java:comp/env/schoolOfAthens/defaultAdminUserName");`
web.xml
<resource-ref>
<description>Test Reference</description>
<res-ref-name>schoolOfAthens/defaultAdminUserName</res-ref-name>
<res-auth>Container</res-auth>
</resource-ref>
我得到以下错误: 当我尝试在muzei应用程序中使用我的
我似乎不能在本地工作,即使同样的WAR在远程服务器上也能工作。当我在本地访问我的应用程序时,我得到了“没有找到上下文根”的错误。自由档案版本是8.5.5.5。 以下是相关文件: 服务器.xml 留言.log ibm-web-bnd.xml ibm-web-ext.xml
如果有人能帮助我纠正代码中的问题,我将不胜感激。不知道我哪里错了。 当前我的persistence.xml包含
在查找jdbc数据源的JNDI连接时,我遇到以下错误: javax。命名。ConfigurationException:无法完成“java:”名称上的JNDI操作,因为服务器运行时无法将该操作的线程与任何J2EE应用程序组件关联。当使用“java:”名称的JNDI客户端未在服务器应用程序请求的线程上执行时,可能会出现这种情况。确保J2EE应用程序不会在静态代码块或该J2EE应用程序创建的线程中对“
我在Jetty服务器上的JNDI配置有问题。我无论如何都不能配置它,使Spring(3.0.5)之后可以检索JNDI变量。 我有一些凭证,我不想存储在属性中,这样它就不会存在于git repo中。我的web应用程序正在Jetty(最新版本9.2.3)上运行,因此我想到了在Jetty web应用程序上下文中存储这些凭证的想法。Jetty通过。所以我创建了jetty env。我的WEB-INF/中的x
在使用资源引用从服务器上下文获取数据源连接时,我收到了JNDI查找错误。请注意,如果我不使用,则“查找”是有效的。 javax。命名。ConfigurationException:无法完成“java:”名称上的JNDI操作,因为服务器运行时无法将该操作的线程与任何J2EE应用程序组件关联。当使用“java:”名称的JNDI客户端未在服务器应用程序请求的线程上执行时,可能会出现这种情况。确保J2EE