- 締切済み
Tomcat5.0でJNDI
お世話になります。 Tomcat5.0で、JNDIを使ってコネクションプーリングを実現しようとしてますが、なかなかうまいこといきません。 コンテキストファイル(hoge.xml)の設定 前略 <Resource name="jdbc/hoge" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/hoge"> <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> <value>jdbc:mysql://localhost/hoge</value> </parameter> <parameter> <name>username</name> <value>hogeuser</value> </parameter> <parameter> <name>password</name> <value>hogepass</value> </parameter> 中略 </ResourceParams> 後略 これを、トムキャットホーム\conf\Catalina\localhostに置いています。 Javaの方のソース String dsString = getServlet().getInitParameter("java:comp/env/jdbc/hoge"); InitialContext context = new InitialContext(); DataSource ds = (DataSource) context.lookup(dsString); Connection connection = ds.getConnection(); 実行すると、 名前 java:/comp/env/jdbc/hoge はこのコンテキストにバインドされていません という具合に怒られます。名前はjdbc/hogeで合ってると思うのですが、他に何かおかしいところがあるでしょうか。 また他に調べるべき点はどのようなところでしょうか。 どうぞよろしくご教授ください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- choconamacream
- ベストアンサー率44% (152/338)
web.xmlには、<resource-ref>要素を用いてデータソースの登録がなされているのでしょうか? 「コネクションプーリング」 http://programnet.hp.infoseek.co.jp/practicaldb/connectionpool.html それでもダメなようでしたら、lookupメソッドの引数を、変数「dsString」を用いずに直接、文字列「"java:comp/env/jdbc/hoge"」としてみてください。 「JavaでHello World JDBC (データソース)編」 http://www.hellohiro.com/datasource.htm