[Seasar-user:20168] Re: s2jdbc.dicon,jdbc.dicon をWEB-INF/classes外に配置したい(解決)

金子 雄一 [E-MAIL ADDRESS DELETED]
2010年 9月 21日 (火) 10:01:29 JST


金子と申します。

解決をしたとのことですが、
ほかの方法もありますので、
参考のために、投稿させていただきます。
(私も、似たような課題にあたったことがあるので。)


1.それぞれのTomcatのweb.xmlにcontext-paramを追記して、
OGNL式で、それぞれの設定を読み込む。

2. Mavenのプロファイルをそれぞれの環境ごとに定義をして、
デプロイ時に、デプロイ先の環境にあったプロファイルを指定して、
WARを作成(OR Mavenで直接デプロイ)

3.S2でTomcat(というかJ2EEコンテナ)のデータソースを利用するようにする。

1.の場合は、ほぼTomcat限定、2.の場合は、Maven利用が前提、
3.は、若干、資料不足(な気がする)というところですね。

私がやったことがあるのは、1.と2.です。
やった感想としては、2.が一番お勧めできます。

現状では、解決したとのことですが、
もし何かの参考になればとおもい、
投稿しました。


以上、よろしくお願いします。


(2010/09/20 9:19), Kaoru Kobo wrote:
> かおる工房です。
> 
> 小林さん、アドバイスありがとうございます。
> 
>>> データベース設定を書き込む s2jdbc.dicon を
>>> <Webアプリケーションフォルダ>/WEB-INF/classes外に
>>> 配備することができますでしょうか?
>>
>> dicon ファイルはクラスパスからリソースとして
>> 読み込んでいるので,クラスパスに通っている
>> 場所ならどこにでも置くことができます.
> 
> Tomcatを利用している場合、
> アプリケーションごとに柔軟に別のクラスパスを追加する方法は
> 調べてみましたけど、分かりませんでした。
> http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html
> 
> また、
> 
>>
>> ...
>> 簡単なのは War ファイルを作成するスクリプトで
>> s2jdbc.dicon が含まれないようにすることでは
>> ないかと.
> 
> これは確かに一番シンプルな手ですね。
> 
> ただ、やはりclassesの中というのが…
> いわゆる「生成されたファイル」で
> 手軽に空にできるようにしたいという感覚があって
> あまり設定などの手で編集するファイルを
> 置きたくないという感じがするのです。
> 
> 
> そこで、
> 
>>
>> こちらのプロダクトを利用している人達もいるようです.
>>
>> http://s2config.sandbox.seasar.org/ja/
> 
> を読んでみたところ、ヒントを得ました。
> diconの中のOGNL式内でメソッド呼び出しができるのですね。
> 
> そこで、
> WEB-INF/configuration.xml
> という別の場所にあるXMLファイルをパースして設定をロードするための
> コンポーネントXmlConfigurationを自作し、
> 
> jdbc.dicon
> ========================================================================
> <component name="xmlConfiguration" 
> class="myapp.util.XmlConfiguration"></component>
> 
> <component name="xaDataSource"
> class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
> <property name="driverClassName">
> "com.mysql.jdbc.Driver"
> </property>
> <property name="URL">xmlConfiguration.get("jdbc/url")</property>
> <property name="user">xmlConfiguration.get("jdbc/username")</property>
> <property name="password">xmlConfiguration.get("jdbc/password")</property>
> </component>
> ========================================================================
> 
> というふうに、
> XmlConfiguration から取得した値を、
> xaDataSource に注入するように記述しました。
> 
> configuration.xml の中身はこのようなものです。
> ========================================================================
> <?xml version="1.0" encoding="UTF8"?>
> <configuration>
> <jdbc>
> <url>jdbc:mysql://localhost:3306/DATABASE</url>
> <username>USER</username>
> <password>PASS</password>
> </jdbc>
> </configuration>
> ========================================================================
> 
> いまのところ、このような形で満足しております。
> 
> アドバイスをありがとうございました。
> 
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 


-- 
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
金子 雄一  Yuichi Kaneko
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆


Seasar-user メーリングリストの案内