[Seasar-user:20938] Re: CoolDeploy時に発生した例外(InstantiationRuntimeException)について質問
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2011年 8月 1日 (月) 20:02:25 JST
小林 (koichik) です.
> 抽象クラスのサービスを生成しようとして 例外が発生しているようにみうけられる
> 挙動がありました。
Seasar2 ではインタフェースや抽象クラスに AOP を適用することで、
インスタンス化できるようにするケースが多々あります。
そのため、抽象クラスであってもコンポーネントとして自動登録することが
できます。
Service の場合、デフォルトではインタフェースも抽象クラスもコンポーネント
として登録します。
もしそれらを除外したいのであれば、creator.dicon で
<component class="org.seasar.framework.container.creator.ServiceCreator">
<property name="enableInterface">false</property>
<property name="enableAbstract">false</property>
</component>
としてください。
なお、COOL deploy の場合はコンテナの初期化時に全てのコンポーネントの
自動登録と初期化を行うので、インスタンス化できないコンポーネントがあると
初期化の時点でエラーが発生します。
しかし、WARM deploy では必要になるまでコンポーネントの登録および初期化は
遅延されるので、設定に問題があっても表面化しないケースがあります。
Date: Mon, 1 Aug 2011 18:20:07 +0900
From: Okamoto Tohru <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:20937] CoolDeploy時に発生した例外(InstantiationRuntimeException)について質問
> 岡元と申します。
>
> お世話になります。
>
> 先日、ServiceのインスタンスをSingletonで生成するための質問をしました。
> その節はありがとうございました。
>
> その後、開発を WarmDeployですすめていたのですが、CoolDeployにしようとしたところ
> 抽象クラスのサービスを生成しようとして 例外が発生しているようにみうけられる
> 挙動がありました。
>
> 環境は
> Seasar Container 2.4.44
> S2Wicket 1.4.17.1
> Wicket 1.4.17
>
>
> です。
> 認識に違いがあれば ご指摘いただけると幸いです
> また、回避策等アドバイスいただければ幸いです
> なお、WarmDeploy時には問題なく動作しておりました。
>
> 少々長いですがスタックトレースです
>
>
> org.seasar.framework.exception.InstantiationRuntimeException:
> [ESSR0041] .AbstractXXXXXXXXXXXXSeriviceの作成に失敗しました。理由はjava.lang.InstantiationException
> at org.seasar.framework.util.ConstructorUtil.newInstance(ConstructorUtil.java:59)
> at org.seasar.framework.container.assembler.AbstractConstructorAssembler.assembleDefault(AbstractConstructorAssembler.java:115)
> at org.seasar.framework.container.assembler.AutoConstructorAssembler.doAssemble(AutoConstructorAssembler.java:44)
> at org.seasar.framework.container.assembler.AbstractConstructorAssembler.assemble(AbstractConstructorAssembler.java:55)
> at org.seasar.framework.container.deployer.SingletonComponentDeployer.assemble(SingletonComponentDeployer.java:64)
> at org.seasar.framework.container.deployer.SingletonComponentDeployer.deploy(SingletonComponentDeployer.java:48)
> at org.seasar.framework.container.deployer.SingletonComponentDeployer.init(SingletonComponentDeployer.java:76)
> at org.seasar.framework.container.impl.ComponentDefImpl.init(ComponentDefImpl.java:236)
> at org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:563)
> at org.seasar.wicket.S2WicketFilter.init(S2WicketFilter.java:186)
> at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
> at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
> at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
> at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
> at org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:115)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
> at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> at org.mortbay.jetty.Server.doStart(Server.java:224)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132)
> at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:454)
> at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:396)
> at org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.java:210)
> at org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:184)
> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
> at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
> at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
> at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
> at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
> at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:616)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
> at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
>
>
> --
> ------------------------------------------------------
> Tohru Okamoto [E-MAIL ADDRESS DELETED]
> -------------------------------------------------------
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
--
{
name: "Koichi Kobayashi",
mail: "[E-MAIL ADDRESS DELETED]",
blog: "http://d.hatena.ne.jp/koichik/",
twitter: "@koichik"
}
Seasar-user メーリングリストの案内