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