[Seasar-user:6644] Re: [Seasar2.4.11,teeda1.0.5]Seasarバージョンアップでデプロ

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 3月 12日 (月) 15:00:32 JST


小林 (koichik) です.

Date:    Mon, 12 Mar 2007 10:09:55 +0900
From:    <[E-MAIL ADDRESS DELETED]>
To:      <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:6633] Re: [Seasar2.4.11,teeda1.0.5]Seasarバージョンアップでデプロ

> もともと,geronimo-jta等のjarは使用しておりません。
> geronimo-jta_1.1_spec-1.0.jarを,
> 追加する必要があるということでしょうか?

おそらく Cosminexus をお使いで,おそらく
TransactionSynchronizationRegistry というクラスが
NoClassDefFoundError の原因になっていると思います.
# ログのメッセージは TeedaServlet の初期化中に
# NoClassDefFoundError が発生したということで,
# TeedaServlet クラスが見つからないというわけでは
# ないと思います.

もしそうだとして,JTA 実装は S2 のものを
お使いでしょうか?
それとも,Cosminexus のものをお使いでしょうか?
構成によって対処法が異なってきます.

・Cosminexus 上で S2 の JTA を使う

この場合,JTA の実装としては S2JTA を使うものの,
JTA 仕様のインタフェースは Cosminexus のものを
使ってきたということだと思います.
しかし Cosminexus は JTA1.0 のインタフェースしか
持っていないために NoClassDefFoundError が
発生したと考えられます.
S2.4.11 では JTA1.1 で追加されたインタフェースを
使うようになったため,geronimo-jta_1.1_spec-1.0.jar を
WEB-INF/lib に追加してください.


・Cosminexus 上で Cosminexus の JTA を使う

この場合は,S2 の Jar の中に含まれている
jta.dicon は使わないようになっているはずです.
S2.4.11 で JTA1.1 を使うようになったのは,
jta.dicon に TransactionSynchronizationRegistry
というコンポーネントを追加したためですが,
Cosminexus 上の JTA ではこのコンポーネントは
使えません.
Cosminexus のトランザクションマネージャを
使うように設定している dicon ファイルには,
TransactionSynchronizationRegistry を
定義しないようにしてください.
また,S2 の Jar の中に含まれている jta.dicon は
どこからもインクルードされないようにしてください.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




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