= Jettyメモ =
Tomcatと双璧を成すOSSのWebコンテナとしてJettyがありますが、Jetty 7.0からEclipse Foundationからリリースされるようになりました。これに従い、Jettyのパッケージもorg.eclipse.jettyパッケージに変更になっています。本稿では、Jetty7.0以降で利用できるTipsを紹介します。
== データソースの設定 ==
Jettyのデータソースの設定はTomcatと全く異なる上に分かりやすい説明が少なく結構はまります。ここでは、Jettyにおけるデータソースの設定方法を紹介します。まず、データソースを設定する上で知っておくべき基本的なディレクトリ構成を示します。ここでは、webappsディレクトリの下のtestdsアプリケーションでデータソースを利用できるように設定します。
{{{
JETTY_HOME/
+contexts/
| +testds.xml(※1)
+lib/
| +ext/(※2)
| +commons-dbcp-1.4.jar
| +commons-ppol-1.5.4.jar
| +postgresql-8.3-605.jdbc4.jar
|
+webapps/
+testds/(※3)
+WEB-INF/
+web.xml
}}}
* ※1: アプリケーションコンテキストの設定の中でデータソースに関する設定を記述します。
* ※2: データソースを利用するためのコネクションプールやJDBCドライバのjarファイルを置きます。
* ※3: web.xmlにresource-ref要素の設定を行います(これはTomcatなどの他のAPサーバと同じです)
=== コンテキストの設定 ===
contextsディレクトリの下にコンテキストを設定したXMLファイル(ここではtestds.xml)を作成します。次のような感じで記述します。
{{{
/testds
/webapps/testds
/etc/webdefault.xml
- org.eclipse.jetty.webapp.WebInfConfiguration
- org.eclipse.jetty.webapp.WebXmlConfiguration
- org.eclipse.jetty.plus.webapp.EnvConfiguration
- org.eclipse.jetty.plus.webapp.Configuration
- org.eclipse.jetty.webapp.JettyWebXmlConfiguration
jdbc/myds
org.postgresql.Driver
jdbc:postgresql://localhost:5432/tomcat
postgres
postgres
}}}
=== JDBCドライバとコネクションプールのjarファイルのコピー ===
lib/extディレクトリにdbcpに必要なファイルとJDBCドライバのjarファイルをコピーします。
=== web.xmlにデータソースの設定を記述 ==
webapps//WEB-INF/web.xmlにJNDIリソースの設定を行います。
{{{
postgreSQL Datasource example
jdbc/myds
javax.sql.DataSource
Container
}}}
=== データソースの利用 ===
サーブレット内のアプリケーションで次のようにしてデータソースを取得します。
{{{
InitialContext ic = new InitialContext();
Context context = (Context)ic.lookup("java:comp/env");
DataSource ds = (DataSource)context.lookup("jdbc/myds");
Connection con = ds.getConnection();
}}}