[Seasar-user:9530] Re: FileSystemComponentAutoRegister と ComponentAutoRegister

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 7月 30日 (月) 05:00:08 JST


小林 (koichik) です.

Date:    Sat, 28 Jul 2007 11:31:09 +0900 (JST)
From:    Nishioka Naoto <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:9524] FileSystemComponentAutoRegister と ComponentAutoRegister

> ただ、これだとjarファイルに対しては適用できないため、
> class/jarを意識することなく処理できるComponentAutoRegisterに
> 切り替えたところ、あるところでの登録分のみ
> コンポーネントの取得を行えなくなってしまいました。

もう少し詳細な情報をお願いします.
「あるところ」というのは,ComponentAutoRegister で
登録するコンポーネント群の一部なのか,それとも
複数定義している ComponentAutoRegister の一部の
定義でのコンポーネント群全部ということなのか,
どちらでしょうか?

> ComponentNotFoundRuntimeException:
>  [ESSR0046]コンポーネント(xxxxx)が見つかりません

このキー (xxxxx) はクラスですか? それとも文字列ですか?
文字列だとしたら,クラスをキーに取得することは
できますか?

> 正常にコンポーネントを取得できるところとの違いとしましては、
> AutoNamingで独自に定義したクラスを使用している点くらいなのですが、
> ComponentAutoRegisterを使用する場合は、
> FileSystem〜の場合と異なり何らかの注意すべき点があるのでしょうか?

特にないはずです.
AutoNaming に関連するコードは ComponentAutoRegister や
FileSystemComponentAutoRegister などの共通のスーパー
クラスにあり,どちらもオーバーライドしていないので
全く同じ動きになるはずです.

> (独自のAutoNamingクラスでのログからすると、コンポーネントの
>  登録処理そのものは走っているようです)

Web アプリケーションであれば,web.xml で S2ContainerServlet
(または TeedaServlet) の <init-param> で debug を true にして,

http://localhost:8080/xxx/s2servlet?command=list  

または

http://localhost:8080/xxx/teedaServlet?command=list  

とするとコンポーネント一覧を表示することができるので,
こちらでコンポーネントが登録されているか,コンポーネント名は
意図したとおりになっているか確認してください.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




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