[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 メーリングリストの案内