[Seasar-user:20725] Re: getComponent() で BeanWrapper が返ってくる (Re: HotDeployモードでIllegalArgumentException)
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2011年 4月 15日 (金) 21:54:56 JST
ひがです。
> 白井といいます。
>
> さらに調べてみると、
> 自動バインディングされるべき componentB を取得している
> このような部分で、
>
> componentDef.getContainer().getComponent("componentB")
>
> BeanWrapper (bean = componentB) クラスのオブジェクトが返って
> きます。
>
componentBがアクションフォームのプロパティ名と
同一ではありませんか?
SAStrutsのS2RequestProcessor#exportPropertiesToRequest()で
フォームのプロパティ名でリクエストの属性に設定しているので
アクションフォームにcomponentBというプロパティがあるとそうなる
可能性があります。
どういうときにその可能性があるかというと、
SAStrutsのS2RequestProcessor#doForward()を見てください。
isExportablePath()がtrueを返すのは、.がついていて.doが
ついていないものです。
これは通常、JSPのパスを返します。
.xxxのようなパスにフォワードしているけど、実はそれは
アクションだというときに最初の問題が起きる可能性が
あります。
> 一方で、
> getComponent("componentA") はそのまま ComponentA クラス
> のオブジェクトが
> 返ってきます。
>
>
> この BeanWrapper が返ってきているというのが
> おそらくこの IllegalArgumentException エラーの原因であ
> ろうと思うのですが、
> getComponent()がBeanWrapperを返してくる
> というのはどのような原因が考えられますでしょうか?
>
>
> 【環境】
>
> s2-frameworkのバージョンは2.4.43です。
> s2-extensionのバージョンは2.4.43です。
> s2-tigerのバージョンは2.4.43です。
> sastruts 1.0.4sp7
> Hot Deploy
>
>
> よろしくお願いいたします。
> --
> 白井 薫
>
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内