Tomcat6のコンテキスト.xmlではまったメモ

晴れ。心地よく暖かい。今日はテニスの日。晴れて涼しくて気持ち良いな。

SAStrutsで作っているいくつかのWeb ApplicationのDB設定はjdbc.diconにベタ書きしている。これだといろいろ不都合がでてきたのでTOMCAT_HOME/conf/Catalina/localhost/<AppName>.xmlのコンテキストにDB設定を移す過程で2点はまった。

まず、TomcatのアプリケーションコンテキストはTomcat5から6に上がった時に書式が変わったので、以下のように書くと良い。あたりまえなんだけど、typeはTomcatが対象アプリケーションを起動する前にロードできるクラスである必要があるようだ。んで若干省略するけど、このような感じになった。

  • <AppName>.xml
    	<Resource name="server/db"
    		auth="Container"
    		username="*username*"
    		password="*password*"
    		type="javax.sql.DataSource"
    		driverClassName="org.postgresql.Driver"
    		url="jdbc:postgresql://host:port/commenter"
    		(他略) />

まさに今回やりたいSAStrutsでJDBC使う場合の設定はSeasar S2DBCPに書かれている通り。で、ここに書かれているJNDI名ってどうなるの、ってことなんだけどいろいろやってみたところ"java:comp/env/"のプレフィックスつけると上手くいった。

  • jdbc.dicon
    	<!-- for PostgreSQL -->
    	<component name="xaDataSource" class="org.seasar.extension.dbcp.impl.DataSourceXADataSource">
    		<property name="dataSourceName">"java:comp/env/server/db"</property>
    	</component>

結果的にはたいしたことないんだけど各用語のグーグラビリティが低い&エラーの意味がわかりにくくて苦労したみゅう。

DB設定をプログラム中から追い出したのでこのサイトで使ってるコメント機能をGithubしたよ。

Github: almirage / Commenter



[ 編集 | 凍結 | 差分 | 添付 | 複製 | 名前変更 | リロード ]   [ 新規 | 一覧 | 単語検索 | 最終更新 | ヘルプ ]
Last-modified: 2011-10-18 (火) 03:14:14 (4568d)