У меня есть DataSource, который настроен на Tomcat 6 в context.xml как MyDataSource. И я получаю его следующим образом:
DataSource dataSource;
try {
dataSource = (DataSource) new InitialContext().lookup("java:comp/env/MyDataSource");
} catch (NamingException e) {
throw new DaoConfigurationException(
"DataSource '" + url + "' is missing in JNDI.", e);
}
Все работает отлично. Теперь я экспортирую этот код в Jboss AP 6. И я настроил свой dataSource и его пул соединений как локальный-tx dataSource под тем же именем.
Когда я выполняю код выше, я получаю исключение NamingException. после некоторого расследования я обнаружил, что правильный способ вызвать мой DataSource под Jboss -
dataSource = (DataSource) new InitialContext().lookup("java:/MyDataSource");
Может кто-нибудь объяснить мне, почему я должен пропустить "comp/env" в моем пути JNDI в Jboss?