Моя основная цель - иметь общий код поиска JNDI, который работает на серверах приложений J2EE.Мое веб-приложение в идеале не должно требовать добавления записи в web.xml для работы:
Мое веб-приложение использует поиск JNDI для:
a) Получение javax.sql.Datasource.б) Пример конфигурации приложения - каталог журнала приложения.
Apache Tomcat - сервер разработки.Я не добавил в мой web.xml.Предполагается, что веб-приложение может быть развернуто без редакции web.xml (для добавления сопоставления ресурса с настроенным ресурсом JNDI)
Следующий фрагмент кода работает для получения как источника данных, так и среды jndi с Tomcat:
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 /" не работает.
Любая помощь по этому вопросу высоко ценится.