[Seasar-user:9531] Re: FileSystemComponentAutoRegister と ComponentAutoRegister
Nishioka Naoto
[E-MAIL ADDRESS DELETED]
2007年 7月 30日 (月) 08:21:55 JST
にしおかです。
ありがとうございます。
> もう少し詳細な情報をお願いします.
> 「あるところ」というのは,ComponentAutoRegister で
> 登録するコンポーネント群の一部なのか,それとも
> 複数定義している ComponentAutoRegister の一部の
> 定義でのコンポーネント群全部ということなのか,
> どちらでしょうか?
ComponentAutoRegisterで登録しているところが2ヶ所あり、
そのうちの1つの方は問題なくコンポーネントの取得ができております。
もう1ヶ所の方は、登録しようとしたコンポーネント全てにおいて、
登録できていない状態です。
> このキー (xxxxx) はクラスですか? それとも文字列ですか?
> 文字列だとしたら,クラスをキーに取得することは
> できますか?
文字列です。クラスをキーに取得しようとしても、同様に
ComponentNotFoundRuntimeException が発生しました。
> http://localhost:8080/xxx/teedaServlet?command=list
> とするとコンポーネント一覧を表示することができるので,
> こちらでコンポーネントが登録されているか,コンポーネント名は
> 意図したとおりになっているか確認してください.
取得してみましたところ、以下のような結果が得られました。
【現象が発生しているところにおいてFileSystem〜で登録】
意図したとおりの内容でリストに表示されます。
独自に定義したAutoNamingで名前がつけられています。
【現象が発生しているところにおいてComponent〜で登録】
ComponentAutoRegisterと、InterTypeAutoRegisterのみが
表示されています。
この2つに関しては、表示されている内容は
FileSystem〜で登録した場合と同様の内容となっています。
【現象が発生していないところにおいてFileSystem〜で登録】
意図したとおりの内容でリストに表示されます。
【現象が発生していないところにおいてComponent〜で登録】
ComponentAutoRegisterと、AspectAutoRegisterのみが
表示されています。
現象の発生の有無にかかわらず、Component〜で登録した場合は
各コンポーネントの内容が表示されないのですが、
そういう仕様なのでしょうか?
なお、それぞれのdiconファイルの記述内容です。
読み込まれる順番としては、
noProblemAutoRegister -> problemAutoRegister
となっています。FQDNNamingは、コンポーネントの登録名を
フルパッケージ名付きで作成するものとなっています。
以上、よろしくお願いいたします。
【diconfile1.dicon】
<component name="noProblemAutoRegister"
class="org.seasar.framework.container.autoregister.ComponentAutoRegister">
<initMethod name="addClassPattern">
<arg>"some.package.noproblem"</arg>
<arg>".*"</arg>
</initMethod>
<property name="instanceDef">@org.seasar.framework.container.deployer.Instan
[E-MAIL ADDRESS DELETED]</property>
<property name="autoBindingDef">@org.seasar.framework.container.assembler.Au
[E-MAIL ADDRESS DELETED]</property>
</component>
【diconfile2.dicon】
<component name="problemAutoRegister"
class="org.seasar.framework.container.autoregister.FileSystemComponentAutoReg
ister">
<property name="autoNaming">
<component class="some.package.FQDNNaming" />
</property>
<initMethod name="addClassPattern">
<arg>"some.package.problem"</arg>
<arg>".*"</arg>
</initMethod>
<property name="instanceDef">@org.seasar.framework.container.deployer.Instan
[E-MAIL ADDRESS DELETED]</property>
<property name="autoBindingDef">@org.seasar.framework.container.assembler.Au
[E-MAIL ADDRESS DELETED]</property>
</component>
--------------------
Nishioka Naoto
Seasar-user メーリングリストの案内