- オガシン
- 常連さん
- 会議室デビュー日: 2006/05/23
- 投稿数: 31
|
投稿日時: 2006-05-30 11:54
いつもお世話になっております。
strutsを勉強していてDBへアクセスする勉強をしています。
しかしエラー
「javax.naming.NameNotFoundException: 名前 jdbc はこのコンテキストにバインドされていません」
が,出てしまい,色々調査しているのですが解決方法がわかりません.
長くなりますが,ソースを載せますので,ミスがあったら指摘,修正をお願いします.
コード: |
|
{
try
{
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/SOFTWARE_DB");
Connection con = ds.getConnection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM SOFTWARE_TBL WHERE ID=1");
softname = rs.getString("NAME"); // テーブルの"NAME"を"softname"に代入
vername = rs.getString("VERSION"); // テーブルの"VERSION"を"vername"に代入
makename = rs.getString("MAKER"); // テーブルの"MAKER"を"makename"に代入]
license = rs.getString("LICENSE_NO"); // テーブルの"LICENSE_NO"を"license"に代入
limit = rs.getString("EXPIRATION_DATE");// テーブルの"EXPIRATION_DATE"を"limit"に代入
delete = rs.getString("DELETE_FLAG");// テーブルの"EXPIRATION_DATE"を"limit"に代入
rs.close(); // DBへのアクセスをクローズ
stmt.close();
con.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
|
server.xml
コード: |
|
<Context path="/struts-test"
reloadable="true"
docBase="C:\Program Files\Apache Group\Tomcat 4.1\webapps\licenseManageSystem"
workDir="C:\Program Files\Apache Group\Tomcat 4.1\webapps\licenseManageSystem\work\org\apache\jsp">
<Resource name="jdbc/SOFTWARE_DB"
auth="container"
type="javax.sql.DataSource" debug="1" />
<ResourceParams name="jdbc/SOFTWARE_DB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
//mysqlがあるDBのIPアドレスです
<value>jdbc:mysql://10.17.43.214/SOFTWARE_DB?user=○○&password=○○</value>
</parameter>
</ResourceParams>
</Context>
|
抜粋して載せました.足りない部分等ありましたら指摘お願いします.
毎回質問ばかりで恐縮ですが.ぜひ宜しくお願いします.
[ メッセージ編集済み 編集者: オガシン 編集日時 2006-05-30 12:06 ]
|
- uk
- ぬし
- 会議室デビュー日: 2003/05/20
- 投稿数: 1155
- お住まい・勤務地: 東京都
|
投稿日時: 2006-05-30 12:38
アプリケーションサーバに何を使っているのかわかりませんが、server.xmlという
ことはTomcatでしょうか。であれば、web.xmlにリソース参照を設定すればよいと
思います。下記のURLあたりを参照してください。
http://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/jndi-datasource-examples-howto.html
|
- オガシン
- 常連さん
- 会議室デビュー日: 2006/05/23
- 投稿数: 31
|
投稿日時: 2006-05-30 12:59
>>ukさん
すばやいお返事ありがとうございます.
Tomcat等のvarsionを乗せていたつもりでしたが,抜けてましたね.
失礼しました^^;
教えていただいたURLを参照して,修正,改良してみたいと思います.
結果はまた後ほど,お伝えします.
エラーを解消できましたがまた新たなエラーが出ました。。。
上記ソース内で変数dsにDataSourceをいれてgetConnectionするはずなんですが,
ds内はnullであり,そこでエラーが出てしまいました.
自分でも調査しますが,ご教授頂けたらありがたいです,宜しくお願いします.
[ メッセージ編集済み 編集者: オガシン 編集日時 2006-05-30 14:21 ]
|
- uk
- ぬし
- 会議室デビュー日: 2003/05/20
- 投稿数: 1155
- お住まい・勤務地: 東京都
|
投稿日時: 2006-05-30 14:25
引用: |
|
Tomcat等のvarsionを乗せていたつもりでしたが,抜けてましたね.
失礼しました^^;
|
で、Tomcatのバージョンは?
引用: |
|
エラーを解消できましたがまた新たなエラーが出ました。。。
上記ソース内で変数dsにDataSourceをいれてgetConnectionするはずなんですが,
ds内はnullであり,そこでエラーが出てしまいました.
自分でも調査しますが,ご教授頂けたらありがたいです,宜しくお願いします.
|
バージョンによって設定の方法が異なりますので、まずバージョンから書いてください。
それから「ds内はnull」の意味がわからないのですが、具体的なエラーはなんですか?
|
- オガシン
- 常連さん
- 会議室デビュー日: 2006/05/23
- 投稿数: 31
|
投稿日時: 2006-05-30 14:46
失礼しました.言葉足らずですみません.
使用しているのは,Tomcat4.1です.
エラーは,
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null', cause:
java.sql.SQLException: No suitable driver
が出てきました.
宜しくお願いします.
|
- uk
- ぬし
- 会議室デビュー日: 2003/05/20
- 投稿数: 1155
- お住まい・勤務地: 東京都
|
投稿日時: 2006-05-30 15:11
JDBCドライバはどこに配置していますか?
それから、usernameとpasswordはResourceParams/parameterで指定するものだと思い
ますが、urlに直接指定しても大丈夫でしたっけ?
|
- オガシン
- 常連さん
- 会議室デビュー日: 2006/05/23
- 投稿数: 31
|
投稿日時: 2006-05-30 15:33
指摘されたように,usernameとpassを移しましたが,同じエラーが出ました。
JDBCドライバは「mysql-connector-java-3.1.12-bin.jar」ファイルの事ですか?
これは,Tomcat 4.1\common\lib(Tomcat,commonフォルダのlib)に追加してあります.
以上です.宜しくお願いします.
|
- uk
- ぬし
- 会議室デビュー日: 2003/05/20
- 投稿数: 1155
- お住まい・勤務地: 東京都
|
投稿日時: 2006-05-30 15:46
引用: |
|
オガシンさんの書き込み (2006-05-30 15:33) より:
指摘されたように,usernameとpassを移しましたが,同じエラーが出ました。
|
パラメータ名はそれぞれusernameとpasswordですが、大丈夫ですか?
引用: |
|
JDBCドライバは「mysql-connector-java-3.1.12-bin.jar」ファイルの事ですか?
これは,Tomcat 4.1commonlib(Tomcat,commonフォルダのlib)に追加してあります.
|
ネットで検索すると、ドライバが正常にダウンロードできなくてサイズ0になっている、
という現象がいくつか報告されていますが、大丈夫ですか?
|