[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 メーリングリストの案内