言語 | java1.6 |
アプリケーションサーバ | Tomcat5.5 |
DB | mysql5.1.6 |
OS | Windows XP |
①JDBCドライバを
Tomcatインストールディレクトリ\Tomcat 5.5\common\lib
に配置する。
今回は
mysql-connector-java-5.1.6-bin.jar
を用いる。
***
当初、eclipseのWEB-INF/libに、このドライバをコピーするだけでドライバをロードできると思っていたが、それでは以下のような例外が発生して、ロードできない。
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
②以下の3つのファイルに設定を加える。
(i)WEB-INF/web.xml
<resource-ref>
<res-ref-name>jdbc/projectDB<res-ref-name>
<res-type>javax.sql.DataSource<res-type>
<res-auth>Container<res-auth>
<res-sharing-scope>Shareable<res-sharing-scope>
</resource-ref>
(ii)META-INF/context.xml
<Context docBase="projectPass" path="/projectPass">
<ResourceLink global="jdbc/projectDB" name="jdbc/projectDB"
type="javax.sql.DataSource" />
<Context>
***ここで、nameの値はWEB-INF/web.xmlのres-ref-nameと一致させる。また、globalもjdbc/projectDBにする。もしも、globalをprojectDBだけにしたら、以下の例外が発生する。
javax.naming.NameNotFoundException: 名前 projectDB はこのコンテキストにバインドされていません
(iii)tomcatのconfig/server.xml
<Resource auth="Container"
driverClassName="com.mysql.jdbc.Driver" name="jdbc/projectDB"
password="DBパスワード" type="javax.sql.DataSource"
url="jdbc:mysql://localhost/projectPass" username="DBユーザー名" />
***今回の場合、urlにはポート番号を加えたりしない。つまり以下のようにしたりしない。
url="jdbc:mysql://localhost:3306/projectPass"
---------------------------------------------------------------------
最後に。何か間違っていることをしていたら、コンソールにエラーメッセージが出力されるから基本的にそれを見て対処すること。また、最終的に戻るべきところはmysqlやtomcat、java APIなどのドキュメント。
0 件のコメント:
コメントを投稿