Проблема с 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);
Другие вопросы по тегам