我有很少的应用程序使用在其web.xml中配置的JNDI属性:
<env-entry>
<env-entry-name>application1/username</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>admin3</env-entry-value>
<lookup-name>username</lookup-name>
</env-entry>
我无法通过查找名称获取条目,以下代码返回null:
String jndiValue = jndiValue = ((Context) new InitialContext().lookup("java:comp/env")).lookup("username").toString();
似乎Tomcat不支持此属性,是不是?
答案 0 :(得分:1)
应用1 /用户名
部分名称为application1/username
。
String jndiValue = jndiValue =((Context)new InitialContext()。lookup(“java:comp / env”))。lookup(“username”)。toString();
因此,您正在查找部分名称username
。
您也可以简化它。您不需要嵌套的Context
或两个Context
泄漏,也不需要toString()
部分:
Context initialContext = new InitialContext();
String jndiValue = jndiValue = initialContext.lookup("java:comp/env/application1/username");
initialContext.close();