Проблема с dbConnection, чтение в context-params из web.xml - PullRequest
0 голосов
/ 29 июня 2009

У меня есть некоторый 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 Ответ

0 голосов
/ 25 сентября 2014

Я сделал, и это работает для меня. я делюсь своим кодом: в 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);
...