アプリ版:「スタンプのみでお礼する」機能のリリースについて

緊急で困っています。宜しくお願いします。
JNDIを使ってDB接続しようとしているのですがエラーが出て接続できません。
■発生箇所----------------------------------------
public static Connection getConnection() {
Connection con = null;
try {
InitialContext context = new InitialContext();
DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/MySQL");
con = ds.getConnection();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
のlookupの箇所です。
------------------------------------------
server.xml
<Context>タグの中に
<Resource name="jdbc/MySQL" auth="Container" type="javax.sql.Datasource">
<ResourceParams name="jdbc/MySQL">
<parameter>
   <name>factory</name>
  <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>

<!-- Max Active
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
-->
<!-- Max Idle
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
-->
<!-- Max Wait
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
-->

<parameter>
<name>username</name>
<value>***</value>
</parameter>
<parameter>
<name>password</name>
<value>***</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost/DB名?useUnicode=true&amp;characterEncording=Windows-31J</value>
</parameter>
</ResourceParams>
</Resource>
</Context>
----------------------------------------------
web.xml
<resource-ref>
<res-ref-name>jdbc/MySQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
----------------------------------------------------
必要なライブラリはTOMCAT_HOME/common/libに配置しています。

------------エラーログ
javax.naming.NamingException: Cannot create resource instance
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:132)
at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)
at org.apache.naming.NamingContext.lookup(NamingContext.java:791)
at org.apache.naming.NamingContext.lookup(NamingContext.java:138)
at org.apache.naming.NamingContext.lookup(NamingContext.java:779)
at org.apache.naming.NamingContext.lookup(NamingContext.java:138)
at org.apache.naming.NamingContext.lookup(NamingContext.java:779)
at org.apache.naming.NamingContext.lookup(NamingContext.java:138)
at org.apache.naming.NamingContext.lookup(NamingContext.java:779)
at org.apache.naming.NamingContext.lookup(NamingContext.java:151)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:136)
at javax.naming.InitialContext.lookup(Unknown Source)
at com.llc.aison.seikei.util.DBUtil.getConnection(DBUtil.java:18)
環境:
Tomcat5.0
mysql
eclipse3.1.1
jdk1.4_12

以上宜しくお願いします。

A 回答 (1件)

はじめまして。


<value>jdbc:mysql://localhost/DB名?useUnicode=true&amp;characterEncording=Windows-31J</value>
のDB名の部分を
CONTEXTタグのpath要素の値にしてみたらどうでしょう?
    • good
    • 1
この回答へのお礼

はじめまして、返事遅くなりました。
回答ありがとうございます。
なぜか理由がわかりませんが、動きました…
できれば解決策を書いておきたかったのですが…
せっかく返事頂いたのに申し訳ありません。
また何かありましたら宜しくお願いします。

お礼日時:2007/10/02 20:52

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