[Seasar-user:9699] setterインジェクションでDIされるケースとされないケースがある
Taro Unno
[E-MAIL ADDRESS DELETED]
2007年 8月 6日 (月) 16:33:08 JST
海野です。
いつもお世話になっております。
setterインジェクションしているPageクラスのプロパティが
インジェクションされるケースとされないケースがあり、
現象が切り分けられず困っております。
インジェクションされないケースでは、APサーバ(Tomcat)起動後、
初めてそのPageクラスを呼び出す場合だけインジェクションされず、
プロパティがnullになっています。
setterメソッドにデバッグポイントを張ると、
インジェクションされるケースでは初めての呼び出しでsetterが呼ばれるのに対し、
インジェクションされないケースでは初めての呼び出しでsetterが呼ばれない
という状態です。
クラス構成は
web.include.AaaPage
web.xxx.XxxPage
web.yyy.YyyPage
としてあり、XxxPageとYyyPageクラスに、それぞれ
private AaaPage aaaPage;
public void setAaaPage(AaaPage aaaPage){
this.aaaPage = aaaPage;
}
としています。
このsetterメソッドが、
XxxPageでは必ず呼ばれる
YyyPageでは、APサーバ(Tomcat)起動後初めての場合だけ呼ばれない
という状態なのですが、なぜ呼ばれないのか原因をつきとめる方法がわかりません。
CoolDeployで起動時のログには、XxxPageとYyyPageクラスの両方とも
コンポーネント定義が登録されている旨のログが出力されています。
原因の切り分け方、調査方法、回避策など
ご存知の方、何卒宜しくお願いします。
Seasar-user メーリングリストの案内