プロが教える店舗&オフィスのセキュリティ対策術

Tomcat6のコネクションプーリングについて

現在、以下の環境で開発を行っているのですが、
データソースからConnectionを取得できていない状況です。

過去に同様の内容が記載されていたのですが、
内容が理解できず投稿させていただいております。

【フォルダ構成】
test
 |
 |--META-INF
 |   |
 |   --context.xml
 |
 |--WEB-INF
    |
     --web.xml

【環境】
Windows XP Pro
Eclipse3.3.2
apache2.2
tomcat6.0
jdk1.6.0_18
mysql-connector-java-5.1.12-bin.jar
Struts2

以下に、context.xml、web.xml及び、サーブレットのコードを記載します

■web.xml===========
<?xml version="1.0" encoding="UTF-8"?>

~~(抜粋)~~

<resource-ref>
<res-ref-name>test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

</web-app>

■context.xml=======

<?xml version="1.0" encoding="UTF-8"?>
<Context displayName="test" docBase="test" path="/test" reloadable="false">
<Resource name="jdbc/test"
auth="Container"
type="javax.sql.DataSource"
username="root"
password="root"
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost/test?useUnicode=true&amp;characterEncoding=UTF-8"
maxActive="4"
maxWait="5000"
maxIdle="2"
validationQuery="select cont(*) from db_fuzoku" />
</Context>

■サーブレットコード(抜粋)=====
public class test_Dao {
DataSource ds;

public ArrayList select(){
ArrayList list = new ArrayList();
try {

// 初期コンテキストを取得
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
// ルックアップしてデータソースを取得
ds = (DataSource) envCtx.lookup("jdbc/test");
} catch (Exception e) {
e.printStackTrace();
}
Connection con = null;
Statement stmt = null;
try {
// データソースからConnectionを取得
con = ds.getConnection();
====================

以上、よろしくお願いします。

A 回答 (2件)

Resourceのname属性はjdbc/testなのに、


res-ref-nameはtestとしているからでは?

あるいは、server.xmlに定義していないからかも?
    • good
    • 1

何をもって


「データソースからConnectionを取得できていない状況です。」
と判断しましたか?

エラーが発生しているのであれば、エラーメッセージを提示してもらわないと、誰も判断できません。

この回答への補足

失礼しました。下記がエラーメッセージになります。
エラーメッセージが多いため抜粋させていただきます。

===========================================
javax.naming.NameNotFoundException: 名前 test はこのコンテキストにバインドされていません
  at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
  at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
  at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
  at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
  at test_Dao.select(test_Dao.java:27)
  ~~省略~~
java.lang.NullPointerException
  at test_Dao.select(test_Dao.java:39)
  ~~省略~~
===========================================

よろしくお願いいたします。

補足日時:2010/03/04 11:22
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!