[Seasar-user:4612] ComponentAutoRegisterについて
Junichi Kato
[E-MAIL ADDRESS DELETED]
2006年 9月 14日 (木) 13:21:54 JST
加藤です。
過去にもComponentAutoRegisterの話題が出ていましたが、ちょっと質問させて
ください。
プロジェクトがcommonとapplicationの2つある場合で、common側にcommon.dicon
を定義し、application側のapp.diconでcommon.diconをインクルードするように
しています。(Daoはcommon側のみに存在します)
この状態で、applicationをTomcatから起動すると、NoSuchConstructorRuntimeEx
ceptionが発生してしまうのですが、考えられる原因は何かありますでしょうか?
Daoはインターフェイスなので、ちょっとおかしな例外がでてしまっているのです
が、コンポーネントの登録順番が問題でしょうか?
よろしくお願いいたします。
-- common.dicon @ commmon project --
<component
class="org.seasar.framework.container.autoregister.ComponentAutoRegister"
>
<property name="autoNaming">
<component
class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/>
</property>
<initMethod name="addReferenceClass">
<arg>@[E-MAIL ADDRESS DELETED]</arg>
</initMethod>
<initMethod name="addClassPattern">
<arg>"common.dao"</arg>
<arg>".*Dao"</arg>
</initMethod>
</component>
<component
class="org.seasar.framework.container.autoregister.AspectAutoRegister"
>
<property name="interceptor">daoInterceptorChain</property>
<initMethod name="addClassPattern">
<arg>"common.dao"</arg>
<arg>".*Dao"</arg>
</initMethod>
</component>
-- app.dicon @ application project-- (common projectのビルドパスは通っている前提)
<include path="common.dicon"/>
-- 発生する例外 --
org.seasar.framework.exception.NoSuchConstructorRuntimeException: [ESSR0064]クラス(common.dao.hogeDao)のコンストラクタ(HogeDao())が見つかりません
at org.seasar.framework.util.ClassUtil.getConstructor(ClassUtil.java:135)
at org.seasar.framework.container.assembler.AbstractConstructorAssembler.assembleDefault(AbstractConstructorAssembler.java:89)
at org.seasar.framework.container.assembler.AutoConstructorAssembler.doAssemble(AutoConstructorAssembler.java:40)
at org.seasar.framework.container.assembler.AbstractConstructorAssembler.assemble(AbstractConstructorAssembler.java:50)
at org.seasar.framework.container.deployer.SingletonComponentDeployer.assemble(SingletonComponentDeployer.java:67)
at org.seasar.framework.container.deployer.SingletonComponentDeployer.deploy(SingletonComponentDeployer.java:51)
at org.seasar.framework.container.deployer.SingletonComponentDeployer.init(SingletonComponentDeployer.java:97)
at org.seasar.framework.container.impl.ComponentDefImpl.init(ComponentDefImpl.java:284)
at org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:408)
at org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:405)
at org.seasar.framework.container.factory.SingletonS2ContainerFactory.init(SingletonS2ContainerFactory.java:54)
at org.seasar.framework.container.servlet.S2ContainerServlet.init(S2ContainerServlet.java:69)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:925)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3880)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4141)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:680)
at org.apache.catalina.startup.Catalina.start(Catalina.java:536)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.NoSuchMethodException: jp.grandtech.pegasus.common.dao.BlogArchiveAccessDao.<init>()
at java.lang.Class.getConstructor0(Class.java:2647)
at java.lang.Class.getConstructor(Class.java:1629)
at org.seasar.framework.util.ClassUtil.getConstructor(ClassUtil.java:133)
... 29 more
-- 環境 --
S2.3.11
S2Dao 1.0.32
Tomcat 5.5.12
JDK1.5.0_06
Seasar-user メーリングリストの案内