= 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();
}}}
=== Jettyの起動 ===
データソースを利用するには、Jettyの起動オプションでplusを指定します。
{{{
> java.exe -jar start.jar OPTIONS=Server,plus
}}}
=== 参考URL ===
 * [http://docs.codehaus.org/display/JETTY/DataSource+Examples DataSource Examples Jetty]