[Seasar-user:11136] Re: Sun ONE Application Server 7でのS2Txの利用方法について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 10月 19日 (金) 15:00:16 JST
小林 (koichik) です.
Date: Fri, 19 Oct 2007 12:32:19 +0900
From: [E-MAIL ADDRESS DELETED]
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:11133] Re: Sun ONE Application Server 7でのS2Txの利用方法について
> さて、本題ですが、教えて頂いたことを踏まえ、以下のパターンで検証してみました。
> が、上手くいきませんでした。
そうでしたか...
> ○設定例(1)
> <component name="transactionManager"
> class="org.seasar.extension.j2ee.JndiTransactionManager">
> <arg>initialContext</arg>
> <arg>"java:appserver/TransactionManager"</arg>
> </component>
>
> ・結果: ×(下記はエラーメッセージの一部)
> org.seasar.framework.exception.InvocationTargetRuntimeException: [ESSR0043]org.seasar.extension.j2ee.JndiTransactionManagerが呼び出した対象が不正です。理由はorg.seasar.framework.exception.NamingRuntimeException: [ESSR0066]JNDIで例外が発生しました。理由はjavax.naming.NameNotFoundException: No object bound to name java:appserver/TransactionManager
ちょっとバージョンが違いますが,Glassfish の
ドキュメントでは,上記の方法で TransactionManager を
取得できることになっています.
https://glassfish.dev.java.net/javaee5/docs/DG/beanr.html
Sun ONE Application Server 7 でもドキュメントに
同等の記載があるんじゃないかと思うので,そちらを
確認していただけないでしょうか.
もし 7 でも上記のように JNDI から取得可能と
記載されていれば,問題は InitialContext かも
しれません.
<component name="initialContext" class="javax.naming.InitialContext">
<arg>
#@java.util.Hashtable@{
"java.naming.factory.initial" : "com.sun.jndi.cosnaming.CNCtxFactory"
}
</arg>
</component>
のようにしてみてください.
> ○設定例(2)
> <component name="transactionManager" class="javax.transaction.TransactionManager">
> @[E-MAIL ADDRESS DELETED]()
> </component>
>
> ・結果: ×(下記はエラーメッセージの一部)
> org.seasar.framework.container.ClassUnmatchRuntimeException: [ESSR0069]定義されたクラス(javax.transaction.TransactionManager)に実際のクラス(com.sun.jts.jta.TransactionManagerImpl)を適用できません
これちょっと惜しいですね.
TransactionManagerImpl が TransactionManager を
実装していないとは思えないので,おそらく
geronimo-jta_1.1_spec-1.1.jar が WEB-INF/lib に
置いてあると思われます.
Seasar2 のセットアップのドキュメントに不備があり,
J2EE 準拠の AP サーバでも geronimo-jta_1.1_spec-1.1.jar が
必要となっていますが,実際には問題がありました.
geronimo-jta_1.1_spec-1.1.jar は WEB-INF/lib から
削除して,代わりに geronimo-jta_1.1_spec-1.1-tsr.jar を
WEB-INF/lib に置いてください.
geronimo-jta_1.1_spec-1.1-tsr.jar は現在の
Seasar2 の配布ファイルには含まれていませんので,
添付したものをお使いください.
geronimo-jta_1.1_spec-1.1-tsr.jar は,
geronimo-jta_1.1_spec-1.1.jar から
TransactionSynchronizationRegistry 以外を
削除したもので,Seasar2.4.18 からはバンドル
されます.ドキュメントも修正します
# というかコミット済み.
--
<signature>
<name>Koichi Kobayashi</name>
<e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: geronimo-jta_1.1_spec-1.0-tsr.jar
型: application/octet-stream
サイズ: 7329 バイト
説明: 無し
URL: http://ml.seasar.org/archives/seasar-user/attachments/20071019/367b860d/attachment.obj
Seasar-user メーリングリストの案内