Проблема с dbConnection, чтение в context-params из web.xml
У меня есть некоторый код JSP, который читает в параметрах контекста сервлета из файла web.xml. эти параметры содержат информацию о соединении с базой данных, поэтому каждый раз, когда изменяется SID, имя пользователя / пароль или имя сервера, программисту не нужно повторно кодировать; пользователь может просто изменить файл web.xml.
<context-param>
<description>database user name</description>
<param-name>user</param-name>
<param-value>guest</param-value>
</context-param>
<context-param>
<description>database password</description>
<param-name>password</param-name>
<param-value>1234</param-value>
</context-param>
я прочитал в них, используя этот раздел кода класса бобов:
String user = servletContext.getInitParameter("user");
String pass = servletContext.getInitParameter("password");
Эта проблема:
Далее я хочу сделать подключение к базе данных, чтобы получить некоторые данные:
Class.forName("oracle.jdbc.driver.OracleDriver");
dbConnection = DriverManager.getConnection(conn_url, user, pass);
где conn_url - это строка, состоящая из имени хоста (или IP-адреса) и номера порта.
В любом случае, dbConnection не работает:
java.sql.SQLException: ORA-01017: invalid username/password; logon denied
несмотря на то, что я повторяю, что такое значения String, и они должны быть такими, какие они должны быть
если я пойду и скажу:
user = "guest";
pass = "1234";
назначая их непосредственно, тогда это работает отлично.
Я не понимаю Я весь день ломал голову. Очевидно, что getConnection ищет 3 строки. Я в растерянности. Любая помощь будет оценена.
1 ответ
Я сделал, и это работает для меня. я делюсь своим кодом: в web.xml я написал так:
<context-param>
<description>user name</description>
<param-name>user</param-name>
<param-value>postgres</param-value>
</context-param>
<context-param>
<description>password</description>
<param-name>password</param-name>
<param-value>samdx</param-value>
</context-param>
в файле сервлета:
ServletContext context = getServletContext();
String name = context.getInitParameter("user");
String password = context.getInitParameter("password");
con = DriverManager.getConnection(url,name, password);
попробуй вот так. не получать значения из web.xml.
String name="guest"
String password="1234"
dbConnection = DriverManager.getConnection(conn_url,name, password);