[Seasar-user:12284] EclipseプラグインからSeasarを使用する方法

AGATA Toshitaka [E-MAIL ADDRESS DELETED]
2007年 12月 25日 (火) 14:55:17 JST


縣です。

Eclipseプラグイン内でSeasar2を使用して、
S2JDBC経由でDBアクセスなどを行おうと思っています。

S2Containerの生成時に、クラスローダーの設定や、
リソースファイル(jta.diconなど)を見つけられないなど、
かなりはまりはしましたが、
なんとか利用できるようになりました。

しかし、今の方法ではSeasar2のJARを別プラグインにできないなど、
いまいちな感じがしています。
他にもっと良い方法ご存じの方がいらっしゃいましたら、
教えていただけると助かります。

また、Eclipse PluginでSeasar2を使われた方っていらっしゃいますか?
小さなことでも結構ですので、情報共有できたらうれしいです。

■環境
Eclipse 3.2.2
Seasar 2.4.19
OS MacOS X 1.4.11
Java 1.5.0_13
  java version "1.5.0_13"
  Java(TM) 2 Runtime Environment, Standard Edition (build
  1.5.0_13-b05-241)
  Java HotSpot(TM) Client VM (build 1.5.0_13-121, mixed mode, sharing)

(WindowsXPでも動作は同じでした)

■S2Container生成のコード(実験1,2とも)
// EclipseのViewのクラス内で
S2Container c = S2ContainerFactory.create(
  "app.dicon", getClass().getClassLoader());


■実験1:Seasar2のJARを別プラグインにした場合
【方法】
1.org.seasar.containerプラグインを作成
 Seasarの依存JARファイルは全てここに置いています。

2.アプリ側のプラグインでorg.seasar.containerを
 MANIFEST.MFのRequire-Bundleに追加

3.Eclipse上から、実行できることは確認

4.「Run..」から「Eclipse Application」として、
 起動して実行すると、jta.diconなどが見つからない問題あり。
 あと、起動時にCPU使用率が100%になって
 起動に数分時間がかかります。

【結論】
 別プラグインのJARに含まれるjta.diconなどの
 リソースファイルが見つからないためこの方法は失敗

■実験2:Seasar2のJARをアプリのプラグイン内に設定した場合
【方法】
1.Seasarの依存JARファイルをアプリのプラグインに置く
 MANIFEST.MFのBundle-ClassPathに追加

2.Eclipse上から、実行できることは確認

3.「Run..」から「Eclipse Application」として、
 起動して実行すると、ComponentAutoRegistor経由で
 登録ができていないことを確認
 ComponentAutoRegistorの部分をひとつひとつ記述すると、
 動作可能

【結論】
ComponentAutoRegistorを使用しなければ、特に問題なし。

以上
-- 
-------------------------------
株式会社ヌーラボ 縣 俊貴
Mail : [E-MAIL ADDRESS DELETED]
HP   : http://www.nulab.co.jp/
TEL  : 03-5766-6256(東京)
       092-724-0020(福岡)
-------------------------------


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