我的基本目标是拥有一个通用的JNDI查找代码,该代码可在J2EE应用服务器上使用。我的Web应用程序理想上不应要求在web.xml中添加条目才能工作:
我的Web应用程序将JNDI查找用于:
a)获取javax.sql.Datasource。 b)应用程序配置参数,例如-应用程序日志目录。
Apache Tomcat是开发服务器。我尚未在web.xml中添加。目的是可以在不使用web.xml版本的情况下部署Web应用程序(用于添加配置了JNDI资源的资源引用)
下面的代码片段可通过Tomcat获取数据源和jndi环境:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
对于环境变量:
String logDirPath =(String)initContext.lookup(“ java:comp / env / APP_LOG_DIR”);
如上所述,该代码在tomcat中具有魅力。但这在其他应用程序服务器(例如IBM Websphere Application 9,Weblogic,glassfish 5.0,JBoss 7(EAP-7.2.0))中不起作用。
简而言之,查找前缀“ java:comp / env /”不起作用。
对此提供任何帮助,我们深表感谢。