Проучившись несколько недель, наконец, составьте решение, как показано ниже.Надеюсь, что это может помочь другим в случае, если они столкнутся с той же проблемой.
Я должен был переключить веб-приложение с WebSphere на Tomcat, где приложение получает соединения из каталога в WebSphere.У Tomcat нет этого каталога, но он может указать это в server.xml / context.xml / web.xml, но я так и не смог заставить его работать!Поэтому я решил использовать каталог на основе файлов:
public static Connection getConnection() throws ClassNotFoundException {
Class.forName("oracle.jdbc.driver.OracleDriver");
Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
env.put(Context.PROVIDER_URL, "file:/C://JNDI");
Connection connection = null;
try {
InitialContext context = new InitialContext(env);
DataSource dataSource = (DataSource) context.lookup("jdbc/DataSource");
connection = dataSource.getConnection();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
Просто изменил две строки в env.put и работает нормально.Но есть некоторая подготовительная работа для создания директории на основе файлов, и вот программа, которая создает файл C: \ JNDI.binding
public static void main(String args[]) throws SQLException, NamingException {
Context ctx = null;
try {
Properties prop = new Properties();
prop.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.fscontext.RefFSContextFactory");
prop.setProperty(Context.PROVIDER_URL, "file:/C:/JNDI");
ctx = new InitialContext(prop);
OracleDataSource ds = new OracleDataSource();
ds.setDriverType("thin");
ds.setServerName("123.123.123.123");
ds.setPortNumber(1521);
ds.setDatabaseName("xe");
ds.setUser("username");
ds.setPassword("password");
ctx.bind("jdbc/DataSource", ds);
} catch (NamingException ne) {
System.err.println(ne.getMessage());
ne.printStackTrace();
}
}
Чтобы он работал в моей производственной среде и тестирую tomcat, я простоиспользование различных настроек INITIAL_CONTEXT_FACTORY зависит от файла свойств,
Спасибо Олафу за большую помощь!