web.xml ファイルからサーブレット コンテキスト パラメータを読み込む jsp コードがあります。これらのパラメーターはデータベース接続情報を保持するため、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>
私はBeanクラスコードのこのセクションを使用してこれらを読みました:
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
文字列値が何であるかをエコーアウトしても、それらは本来あるべきものです。
私が行って言うと:
user = "guest";
pass = "1234";
それらを直接割り当てると、正常に機能します。
理解できません。私は一日中私の脳をガタガタさせました。明らかに、getConnection は 3 つの文字列を探します。私は途方に暮れています。どんな助けでも大歓迎です。