Mar 12, 2006
[Derby] Derby を Tomcat 5.5 の DataSource に設定する方法
Server Mode で起動した Derby を Tomcat 5.5 に DataSource として登録する方法をメモ。 Tomcat 5.0 → 5.5 で設定方法が変わったことで、意外と設定に時間がかかってしまった。
- The Apache Tomcat 5.5 Servlet/JSP Container JNDI Datasource HOW-TO
- http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html
Derby を Server Mode で起動
Derby 10.1.2.1 を前提とする。
> set JAVA_HOME=c:\jdk1.5.0_06 > set DERBY_INSTALL=c:\db-derby-10.1.2.1-bin > cd db-derby-10.1.2.1-bin\frameworks\NetworkServer\bin db-derby-10.1.2.1-bin\frameworks\NetworkServer\bin>startNetworkServer.bat サーバーは、ポート 1527 で接続を受け入れる準備ができました。
Tomcat 5.5 の設定
Tomcat 5.5.15 を前提とする。
- Tomcat に Derby の JDBC ドライバを登録する。 derbyclient.jar、derbynet.jar、derbytools.jar を %CATALINA_HOME%/common/lib/ にコピーする。
-
DataSource の設定を行う。
%CATALINA_HOME%/conf/server.xml に下記の設定を追加する。
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="/myapp" docBase="myapp" reloadable="false" crossContext="true"> <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" driverClassName="org.apache.derby.jdbc.ClientDriver" url="jdbc:derby://localhost:1527/derbyDB;create=true"/> </Context> <Host>
Cannot create JDBC driver of class '' for connect URL 'null' java.sql.SQLException: No suitable driverという例外が発生する。
Web アプリケーションの設定
<web-app>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
アプリケーションからの呼び出し
普通に JNDI 経由で DataSource を取得すれば良い。
Context context = new InitialContext();
Object obj = context.lookup("java:comp/env/jdbc/TestDB");
DataSource dataSource = (DataSource)obj;
Connection connection = dataSource.getConnection();



