[Seasar-user:21847] Re: Seasar2とS2Flex2の相互バージョン関係について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2014年 3月 28日 (金) 03:01:59 JST


小林 (koichik) です。

LoginUserDtoの管理は@Import/@ExportでS2Flex2に
任せているようですが、[Seasar-user:21839]の
LoginUserDtoには@Componentが付けられていて、
Seasar2側でも管理させているように見えます。

そのせいで二つの異なるインスタンスが登場
しているのではないでしょうか?

S2Flex2を使う場合、Dtoの管理はS2Flex2に
任せるべきでしょうから、LoginUserDtoの
@Componentアノテーションは削除してください。
# S2Flex2のexampleではDtoに@Componentは
# 付けられていません。

また、creator.diconにあるDtoCreatorの定義と
customizer.diconにあるDtoCustomizerの定義も
削除してみてください。
# いずれもS2Flex2のexampleではコメントアウト
# されていたり、定義されていなかったりします。

ここまでの状況を見る限り、「本来は正しく
動いてはいけない」ものが、以前は一見動いて
しまっているように見えただけかもしれませんね。
Hot deployでの問題も同様だと思います。



On Thu, 27 Mar 2014 10:24:37 +0000, <ooishi-m @ bridgestone.co.jp> wrote:

> masanです。
> 
> ご確認ありがとうございます。
> ソースを添付していますが、IndexServiceImpl.javaは全く変更しておらず
> 以前に使っていたファイルをそのまま使用しています。
> 何故にインスタンスが別物になっているのか、全くわかりません。
> 今まで動作していたのがおかしかったのでしょうか?
> 
> お手数ですが、ソースを見ていただけると助かります。
> 
> 以上、よろしくお願いいたします。
> -----Original Message-----
> From: seasar-user-bounces @ ml.seasar.org [mailto:seasar-user-bounces @ ml.seasar.org] On Behalf Of Koichi Kobayashi
> Sent: Thursday, March 27, 2014 5:31 AM
> To: seasar-user @ ml.seasar.org
> Subject: [Seasar-user:21845] Re: Seasar2とS2Flex2の相互バージョン関係について
> 
> 小林 (koichik) です。
> 
> ログを見る限り、全然違う状況になってますが。。。
> とりあえず、最初のリクエストの処理でサービスに
> 設定されるLoginUserDto:
> 
> BEGIN avpdd2.web.avpdd2.impl.IndexServiceImpl#setLoginUserDto(avpdd2.dto.LoginUserDto @ 17cf28b)
> 
> と、メソッドに渡されるLoginUserDto:
> 
> BEGIN avpdd2.web.avpdd2.impl.IndexServiceImpl#login2(avpdd2.dto.LoginUserDto @ 17adb4a)
> 
> のインスタンスが別物 (17cf28bと17adb4a)
> になってますね。
> 2番目のリクエストでは:
> 
> BEGIN avpdd2.web.avpdd2.impl.IndexServiceImpl#setLoginUserDto(avpdd2.dto.LoginUserDto @ 17cf28b)
> 
> と、最初のリクエストのsetterに渡されたのと
> 同じLoginUserDto (17cf28b) が渡されているので、
> これがHttpSessionに格納されているのでしょう。
> 
> 最初のリクエストはログイン操作のようなので、
> IndexServiceImpl#login2()に渡されるのは
> ログイン画面で入力されたリクエストパラメータの
> 内容を含んだLoginUserDto (17adb4a)とすると、
> その内容をHttpSessionに格納されている
> LoginUserDto (17cf28b) にコピーするとか、
> 17adb4aの方をHttpSessionに設定するなどの
> 処理が必要になるのではないでしょうか?
> 
> この辺りはSeasar2やS2Flex2のバージョン
> アップとは何も関係がないと思うので、
> Doltengで作成した新プロジェクトにコピー
> した際に漏れがなかったか見直してみると
> いいんじゃないかと思います。
> 
> 
> なお、setterのENDのメッセージでnullが
> 出ているのは、通常setterには戻り値が
> なく (void)、リフレクション的にはvoidの
> メソッドはnullを返すように見えるためです。
> 
> 
> On Wed, 26 Mar 2014 05:17:53 +0000, <ooishi-m @ bridgestone.co.jp> wrote:
> 
> > masanです。
> > 
> > ログを添付しています。
> > Cool deployで起動しているようですが、状況は変わりませんでした。
> > ログを見るとセッターの部分でnullが頻繁に表れているのが
> > 気になります。
> > 
> > 以上、よろしくお願いいたします。
> > -----Original Message-----
> > From: seasar-user-bounces @ ml.seasar.org [mailto:seasar-user-bounces @ ml.seasar.org] On Behalf Of Koichi Kobayashi
> > Sent: Wednesday, March 26, 2014 4:44 AM
> > To: seasar-user @ ml.seasar.org
> > Subject: [Seasar-user:21843] Re: Seasar2とS2Flex2の相互バージョン関係について
> > 
> > 小林 (koichik) です。
> > 
> > env.txtがut (単体テスト用、Warm deploy) でも
> > ct (結合テスト用、Hot deploy) でもなければ
> > Cool deployになります。
> > 
> > 
> > On Tue, 25 Mar 2014 11:15:18 +0000, <ooishi-m @ bridgestone.co.jp> wrote:
> > 
> > > masanです。
> > > 
> > > 返信が遅くなり申し訳ありません。
> > > Cool deployの起動方法ですが、
> > > env.txtを編集する。
> > > これを「product(クールデプロイ)」に変更する。
> > > と言うことであっていますか?
> > > 
> > > 以上、よろしくお願いいたします。
> > > 
> > > -----Original Message-----
> > > From: seasar-user-bounces @ ml.seasar.org [mailto:seasar-user-bounces @ ml.seasar.org] On Behalf Of Koichi Kobayashi
> > > Sent: Tuesday, March 18, 2014 3:04 AM
> > > To: seasar-user @ ml.seasar.org
> > > Subject: [Seasar-user:21841] Re: Seasar2とS2Flex2の相互バージョン関係について
> > > 
> > > 小林 (koichik) です。
> > > 
> > > やっぱり
> > > 
> > > > 2014-03-17 09:06:19,724 [http-8080-Processor19] WARN  org.seasar.framework.container.hotdeploy.HotdeployClassLoader - HOT deploy対象クラス(avpdd2.dto.LoginUserDto)が非対象クラスから参照されて通常のクラスローダにロードされています。
> > > 
> > > が出力されてますね。
> > > 
> > > Hot deploy非対象のクラス (Filterやdiconに
> > > 直接記述されたコンポーネント、特にInterceptor)
> > > がLoginUserDtoを使っていませんか?
> > > もし使っているなら使わないようにするか、
> > > LoginUserDtoをHot deploy非対象にする必要が
> > > あります。
> > > 
> > > あるいはCool deployで起動するとどうなりますか?
> > > 
> > > 
> > > On Mon, 17 Mar 2014 00:16:23 +0000, <ooishi-m @ bridgestone.co.jp> wrote:
> > > 
> > > > masanです。
> > > > 
> > > > 回答ありがとうございます。
> > > > すみません。
> > > > このSerializableに部分はソースを変更しました。
> > > > 以前のソースでは、Serializableをインタフェースを
> > > > 実装していませんでしたが動作をしてました。
> > > > が、今回はエラーが出てので実装しました。
> > > > 
> > > > ログとLoginUserDtoのソースを添付します。
> > > > 
> > > > 以上、よろしくお願いいたします。
> > > > 
> > > > -----Original Message-----
> > > > From: seasar-user-bounces @ ml.seasar.org [mailto:seasar-user-bounces @ ml.seasar.org] On Behalf Of Koichi Kobayashi
> > > > Sent: Saturday, March 15, 2014 8:32 AM
> > > > To: seasar-user @ ml.seasar.org
> > > > Subject: [Seasar-user:21838] Re: Seasar2とS2Flex2の相互バージョン関係について
> > > > 
> > > > 小林 (koichik) です。
> > > > 
> > > > 「ソースを変更していない」だけでは十分な
> > > > 情報を得られないので何とも言えないのですが、
> > > > LoginUserDtoはSerializableインタフェースを
> > > > 実装していますか?
> > > > 
> > > > HttpSessionに格納されるオブジェクトは本来
> > > > Serializableであるべきですが、そうでなくても
> > > > 初期のSeasar2では動作してしまう場合がありました
> > > > (HttpSessionの構成によります)。
> > > > 
> > > > その後のHot deployでは、HttpSessionに
> > > > 格納されるオブジェクトがHot deploy対象の
> > > > 場合に[Seasar-user:21822]のような例外が
> > > > 発生することを避けるため、リクエスト毎に
> > > > シリアライズ/デシリアライズを行うように
> > > > なっています。
> > > > そのため、HttpSessionに格納するクラスは
> > > > Serializableを実装している必要があります。
> > > > # Hot deployともSeasar2とも関係なく、
> > > > # セッションに格納する場合はSerializableで
> > > > # あるべきです。
> > > > 
> > > > LoginUserDtoがSerializableインタフェースを
> > > > 実装しているにも関わらずセッションに保存
> > > > されない場合は、ログやソースなど詳しい
> > > > 情報を提示してください。
> > > > 
> > > > 
> > > > On Fri, 14 Mar 2014 09:28:10 +0000, <ooishi-m @ bridgestone.co.jp> wrote:
> > > > 
> > > > > masanです。
> > > > > 
> > > > > 回答ありがとうございます。
> > > > > 環境を最新のDoltengにしました。
> > > > > 新しいプロジェクトを作成して、既存のソースをすべてそのプロジェクト内に
> > > > > 移しコンパイルエラーがないところまではしました。
> > > > > が、今までログイン情報をセッションに格納していたのですが
> > > > > 何故かセッションに格納できなくなってしまいました。
> > > > > ソースは変更していないので、何故にセッションに格納できなくなってしまったのか
> > > > > わかりません。
> > > > > セッションに格納するために、diconファイルの設定が必要だったでしょうか?
> > > > > 
> > > > > 以上、よろしくお願いいたします。
> > > > > -----Original Message-----
> > > > > From: seasar-user-bounces @ ml.seasar.org [mailto:seasar-user-bounces @ ml.seasar.org] On Behalf Of Koichi Kobayashi
> > > > > Sent: Friday, March 14, 2014 4:30 AM
> > > > > To: seasar-user @ ml.seasar.org
> > > > > Subject: [Seasar-user:21834] Re: Seasar2とS2Flex2の相互バージョン関係について
> > > > > 
> > > > > 小林 (koichik) です。
> > > > > 
> > > > > Seasar2の2.4.13から2.4.47だと間が飛びすぎ、
> > > > > 特に2.4.18で大きな変更があったのでJarだけ
> > > > > 入れ替えて動く可能性は少ないと思います。
> > > > > Seasar2のバージョン変更時の注意点はこちらを
> > > > > 参照してください。
> > > > > 
> > > > > http://www.seasar.org/wiki/index.php?SeasarUpdateOperationLog
> > > > > 
> > > > > > 途中から最新のDoltengの開発環境に移行の方法がわかりません。
> > > > > 
> > > > > Doltengで新規プロジェクトを作成して、構成や
> > > > > 設定を比較してみてください、という意味でした。
> > > > > 
> > > > > 
> > > > > On Thu, 13 Mar 2014 00:18:44 +0000, <ooishi-m @ bridgestone.co.jp> wrote:
> > > > > 
> > > > > > masanです。
> > > > > > 
> > > > > > 回答ありがとうございます。
> > > > > > 今回の件は、Seasar2.4.13とS2Flex2 1.0.1にて開発をしてきたのですが
> > > > > > S2Dao を1.0.43から1.0.51にバージョンを上げる必要があった為の措置になります。
> > > > > > (1.0.43では、MySQLのストアドプロシージャが認識できないようだったので)
> > > > > > 上手く説明できないのですが、開発の途中で使用しているクラスの
> > > > > > バージョンを上げる際は、クラスの入替えだけではだめでしょうか?
> > > > > > S2Dao に関しては、dao.dicon の設定ファイルを書き換えています。
> > > > > > 途中から最新のDoltengの開発環境に移行の方法がわかりません。
> > > > > > 
> > > > > > 趣旨からずれてきてしまっていますが、教えていただけると助かります。
> > > > > > 
> > > > > > 以上、よろしくお願いいたします。
> > > > > > 
> > > > > > -----Original Message-----
> > > > > > From: seasar-user-bounces @ ml.seasar.org [mailto:seasar-user-bounces @ ml.seasar.org] On Behalf Of Koichi Kobayashi
> > > > > > Sent: Thursday, March 13, 2014 2:31 AM
> > > > > > To: seasar-user @ ml.seasar.org
> > > > > > Subject: [Seasar-user:21823] Re: Seasar2とS2Flex2の相互バージョン関係について
> > > > > > 
> > > > > > 小林 (koichik) です。
> > > > > > 
> > > > > > ログを見る限り、Hot deploy関連の設定の問題で
> > > > > > S2Flex2との互換性は関係ないんじゃないかと
> > > > > > 思います。
> > > > > > 
> > > > > > この情報だけでは詳細はわかりませんが、古い
> > > > > > (おそらく初回リクエスト時の) HotdeployClassLoderに
> > > > > > ロードされたLoginUserDtoがその後のリクエストでも
> > > > > > 続けて利用されようとしています。
> > > > > > Hot deployでよくある「初回だけは動くけど〜」の
> > > > > > 典型例のようなので、ここだけ見るとS2Flex2は
> > > > > > 関係なさそうに見えます。
> > > > > > 
> > > > > > 最新のDoltengを使うとSeasar2.4.46と
> > > > > > S2Flex2 1.1.1-rc1の組み合わせでプロジェクトを
> > > > > > 作ることが出来るので、そちらの設定を参考に
> > > > > > してみてください。
> > > > > > 
> > > > > > 
> > > > > > On Wed, 12 Mar 2014 08:55:20 +0000, <ooishi-m @ bridgestone.co.jp> wrote:
> > > > > > 
> > > > > > > masanです。
> > > > > > > 
> > > > > > > いつもお世話になっております。
> > > > > > > 
> > > > > > > Seasar2とS2Flex2の相互バージョン関係について教えてください。
> > > > > > > これまで、Seasar2のバージョンを2.4.13 S2Flex2のバージョンを1.0.1にて
> > > > > > > 使用していましたが、Seasar2のバージョンを最新の2.4.47にしたところ
> > > > > > > 下記のようなエラーが発生しています。
> > > > > > > 
> > > > > > > ERROR 2014-03-12 17:40:26,685 [http-8080-Processor24] [ESSR0059]クラス(avpdd2.web.avpdd2.impl.IndexServiceImpl$$EnhancedByS2AOP$$da34f5)のプロパティ(loginUserDto)の設定に失敗しました。理由はorg.seasar.framework.exception.SIllegalArgumentException: [ESSR0098]クラス(avpdd2.web.avpdd2.impl.IndexServiceImpl$$EnhancedByS2AOP$$da34f5)[org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ fa88fb]の型(avpdd2.dto.LoginUserDto)[org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ fa88fb]のプロパティ(loginUserDto)に、型(avpdd2.dto.LoginUserDto)[org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ 16b352c]の値(avpdd2.dto.LoginUserDto @ 9d9edd)を設定できませんでした。対象のクラスは(avpdd2.web.avpdd2.impl.IndexServiceImpl$$EnhancedByS2AOP$$da34f5)[org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ fa88fb]です。
> > > > > > > org.seasar.framework.beans.IllegalPropertyRuntimeException: [ESSR0059]クラス(avpdd2.web.avpdd2.impl.IndexServiceImpl$$EnhancedByS2AOP$$da34f5)のプロパティ(loginUserDto)の設定に失敗しました。理由はorg.seasar.framework.exception.SIllegalArgumentException: [ESSR0098]クラス(avpdd2.web.avpdd2.impl.IndexServiceImpl$$EnhancedByS2AOP$$da34f5)[org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ fa88fb]の型(avpdd2.dto.LoginUserDto)[org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ fa88fb]のプロパティ(loginUserDto)に、型(avpdd2.dto.LoginUserDto)[org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ 16b352c]の値(avpdd2.dto.LoginUserDto @ 9d9edd)を設定できませんでした。対象のクラスは(avpdd2.web.avpdd2.impl.IndexServiceImpl$$EnhancedByS2AOP$$da34f5)[org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ fa88fb]です。
> > > > > > > 
> > > > > > > そもそもSeasar2とS2Flex2のこのバージョン関係は動作が
> > > > > > > 保証されていないのでしょうか?
> > > > > > > Seasar2のバージョン2.4.47で動作が保証される
> > > > > > > S2Flex2のバージョンは何になりますか?
> > > > > > > 
> > > > > > > 以上、よろしくお願いいたします。
> > > > > > > _______________________________________________
> > > > > > > Seasar-user mailing list
> > > > > > > Seasar-user @ ml.seasar.org
> > > > > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > > > > 
> > > > > > 
> > > > > > -- 
> > > > > > {
> > > > > >   name: "Koichi Kobayashi",
> > > > > >   mail: "koichik @ improvement.jp",
> > > > > >   blog: "http://d.hatena.ne.jp/koichik/",
> > > > > >   twitter: "@koichik"
> > > > > > }
> > > > > > 
> > > > > > _______________________________________________
> > > > > > Seasar-user mailing list
> > > > > > Seasar-user @ ml.seasar.org
> > > > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > > > > _______________________________________________
> > > > > > Seasar-user mailing list
> > > > > > Seasar-user @ ml.seasar.org
> > > > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > > > 
> > > > > 
> > > > > -- 
> > > > > {
> > > > >   name: "Koichi Kobayashi",
> > > > >   mail: "koichik @ improvement.jp",
> > > > >   blog: "http://d.hatena.ne.jp/koichik/",
> > > > >   twitter: "@koichik"
> > > > > }
> > > > > 
> > > > > _______________________________________________
> > > > > Seasar-user mailing list
> > > > > Seasar-user @ ml.seasar.org
> > > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > > > _______________________________________________
> > > > > Seasar-user mailing list
> > > > > Seasar-user @ ml.seasar.org
> > > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > > 
> > > > 
> > > > -- 
> > > > {
> > > >   name: "Koichi Kobayashi",
> > > >   mail: "koichik @ improvement.jp",
> > > >   blog: "http://d.hatena.ne.jp/koichik/",
> > > >   twitter: "@koichik"
> > > > }
> > > > 
> > > > _______________________________________________
> > > > Seasar-user mailing list
> > > > Seasar-user @ ml.seasar.org
> > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > 
> > > 
> > > -- 
> > > {
> > >   name: "Koichi Kobayashi",
> > >   mail: "koichik @ improvement.jp",
> > >   blog: "http://d.hatena.ne.jp/koichik/",
> > >   twitter: "@koichik"
> > > }
> > > 
> > > _______________________________________________
> > > Seasar-user mailing list
> > > Seasar-user @ ml.seasar.org
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > _______________________________________________
> > > Seasar-user mailing list
> > > Seasar-user @ ml.seasar.org
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > 
> > 
> > -- 
> > {
> >   name: "Koichi Kobayashi",
> >   mail: "koichik @ improvement.jp",
> >   blog: "http://d.hatena.ne.jp/koichik/",
> >   twitter: "@koichik"
> > }
> > 
> > _______________________________________________
> > Seasar-user mailing list
> > Seasar-user @ ml.seasar.org
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> 
> 
> -- 
> {
>   name: "Koichi Kobayashi",
>   mail: "koichik @ improvement.jp",
>   blog: "http://d.hatena.ne.jp/koichik/",
>   twitter: "@koichik"
> }
> 
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user


-- 
{
  name: "Koichi Kobayashi",
  mail: "koichik @ improvement.jp",
  blog: "http://d.hatena.ne.jp/koichik/",
  twitter: "@koichik"
}



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