[Seasar-user:4245] s2strutsでmainから実行するときにAutoNamingが働きません
Akira Yamamoto
[E-MAIL ADDRESS DELETED]
2006年 8月 3日 (木) 09:50:52 JST
山本と申します。
今度こそseasar2で悩んでいる質問です。
デバッグをするときにTomcat経由でプログラムを実行せずにActionのPOJOに
main文を記述してlogicのデバッグを行っています。
servletとして動作する(名前の自動解決ができている)ときに
app.diconをmainから読み取ってcomponentを取得しようとしても失敗してしまい
ます。
== main文の例
public static void main(String[] args) {
S2Container container = S2ContainerFactory.create("app.dicon");
ExcelLogic excelLogic = (ExcelLogic) container
.getComponent("excelLogic");
....
== エラー出力内容
Exception in thread "main" org.seasar.framework.container.ComponentNotFoundRuntimeException: [ESSR0046]コンポーネント(excelLogic)が見つかりません
at org.seasar.framework.container.impl.S2ContainerBehavior$DefaultProvider.acquireFromGetComponentDef(S2ContainerBehavior.java:94)
at org.seasar.framework.container.impl.S2ContainerBehavior$DefaultProvider.acquireFromGetComponent(S2ContainerBehavior.java:87)
at org.seasar.framework.container.impl.S2ContainerBehavior.acquireFromGetComponent(S2ContainerBehavior.java:43)
at org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:118)
at sgi.file.action.impl.ExcelDownloadActionImpl.main(ExcelDownloadActionImpl.java:47)
app.diconから次のような記述のdiconファイルを読み取っておりservlet
経由からは取得できています。
<component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
<property name="autoNaming">
<component class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/>
</property>
<initMethod name="addClassPattern">
<arg>"test.file.logic.impl"</arg>
<arg>".*LogicImpl"</arg>
</initMethod>
</component>
<component class="org.seasar.framework.container.autoregister.AspectAutoRegister">
<property name="interceptor">logicInterceptorChain</property>
<initMethod name="addClassPattern">
<arg>"test.file.logic.impl"</arg>
<arg>".*LogicImpl"</arg>
</initMethod>
</component>
またcomponentを明示的に指定すれば確実に取得することは確認しております。
<component name="excelLogic" class="test.file.logic.impl.ExcelLogicImpl"
/>
解決策についてわかりましたら、よろしくお願いします。
--------------------------------------------------------
日本SGI SiliconLIVEシステム事業本部
山本 明 [E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内