[Seasar-user:10841] Componentアノテーションで登録したコンポーネントがPageクラスでバインドできない
Shinichi Yanagisawa
[E-MAIL ADDRESS DELETED]
2007年 10月 2日 (火) 20:55:46 JST
Seasar2.4.17, Teeda1.0.11を使用しています。
コード情報(コードの種類は多数あり)をシングルトンとしてコンポーネント化し、Pageクラス等で
使用したいというニーズがあります。
DTOとは意味が違うと考え、コード情報のクラスを格納するパッケージ(XXX.code)を追加し、そこにコード
情報を管理するクラスを集めようと考えました。
そのクラスをコンポーネント化するため、下記のようにComponentアノテーションを使用しました。
package shopping.code;
@Component(name="jobCodeSet", instance=InstanceType.SINGLETON)
public class JobCodeSet implements Serializable {
....
}
このコンポーネントを利用するため、PAGEクラスで下記のようにコーディングしました。
public class EntryUserPage implements Serializable {
private static final long serialVersionUID = 1L;
@Binding(value="jobCodeSet", bindingType=BindingType.MUST)
private JobCodeSet jobCodeSet;
...
}
これで実行したところ、下記のような例外が発生しました。
org.seasar.framework.beans.IllegalPropertyRuntimeException: [ESSR0059]クラス(shopping.web.user.EntryUserPage$$EnhancedByS2AOP$$1451fb5)のプロパティ(jobCodeSet)の設定に失敗しました。理由はorg.seasar.framework.exception.OgnlRuntimeException: [ESSR0073]OGNLで例外が
発生しました。理由は[ESSR0046]コンポーネント(jobCodeSet)が見つかりません
1.このような使用方法は間違いでしょうか?
2.こういった目的で使用したい場合、どういう方法が良いでしょうか?
Seasar-user メーリングリストの案内