- PR -

Tomcat5 MySQL

1
投稿者投稿内容
初心者
会議室デビュー日: 2005/01/06
投稿数: 3
投稿日時: 2005-01-06 16:28
質問です。ECLIPSEで課題をやっています。
Tomcatで、JDDIリソースのJDBC経由で、MySQLと接続がうまくいきません
エラーメッセージは、
javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null', cause: No suitable driver
と、
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null', cause: No suitable driver
です。

tomcat/conf/server.xmlは、

<DefaultContext>
<GlobalNamingResources>
<Resource name="MySQL_JDBC" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="MySQL_JDBC">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30000</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>100</value>
</parameter>
<parameter>
<name>username</name>
<value>id</value>
</parameter>
<parameter>
<name>password</name>
<value>pass</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/userdatabaseg7?</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
</DefaultContext>
のように設定しました。userdatabaseg7は、MySQLの自分が設定した、データべース名です。
また、

showdatabase.jspでは、
<%@ page import="java.sql.*,javax.sql.*,javax.naming.InitialContext,javax.naming.Context" %>

<html>
<head><title>showTable.jsp</title></head>
<body>
<%
Class.forName("com.mysql.jdbc.Driver");
InitialContext initCon = new InitialContext( ); //@
DataSource ds = (DataSource)initCon.lookup("java:comp/env/MySQL_JDBC"); //A
Connection con = ds.getConnection( ); //BJNDIリソースへのコネクト
Statement stmt = con.createStatement( ); //C
ResultSet result = stmt.executeQuery("select * from userdatabaseg7;"); //DSQL文の実行
%>
<table border="1">
<tr>
<th>id</th>
<th>role_name</th>
</tr>
//Eデータの表示
  <%
while (result.next( )) {
%>
<tr>
<td> <%= result.getString(1) %></td>
<td> <%= result.getString(2) %></td>
</tr>
<%
}
//Fコネクトのクローズ
con.close( );
initCon.close( );
%>
</table>
</body>
</html>
としています。
さらに、web.xmlでは、
<resource-ref>
<res-ref-name>MySQL_JDBC</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
を追加しました。
細かなことでも結構です、なんかわかる方いれば、教えてください。

環境は、
Tomcat/5.0.16
MySQL4.0
j2sdk-1.4.2.03
です。
cyanberry
常連さん
会議室デビュー日: 2005/01/07
投稿数: 37
投稿日時: 2005-01-07 17:32
GlobalNamingResourcesに記述する場合には、個々のアプリケーションのContextにResourceLinkを記述しなければいけないようですが、どうでしょうか。

↓参考サイト
http://kamakura.cool.ne.jp/oppama/swjd/jndiglobaldatasource.html
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2005-01-07 23:24
JSPからDB見に行かないとだめなんですか?
MVCとか考えた結果JSPでDB接続なんですか?
1

スキルアップ/キャリアアップ(JOB@IT)