[Seasar-user:20944] Re: CoolDeploy 時の DI が失敗([ESSR0007]S2Containerはnullあるいは空であってはいけません) するのでアドバイスねがいます
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2011年 8月 2日 (火) 18:30:08 JST
小林 (koichik) です.
この情報だけでは何ともいえませんが、
> [ESSR0059]クラス(xxxxxxxxxxxxxx.service.TablenameService)のプロパティ(tablenameService)の設定に失敗しました。理由はorg.seasar.framework.exception.InvocationTargetRuntimeException:
このプロパティは自分自身を参照するんですか?
Date: Tue, 2 Aug 2011 13:47:05 +0900
From: Okamoto Tohru <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:20943] CoolDeploy 時の DI が失敗([ESSR0007]S2Containerはnullあるいは空であってはいけません) するのでアドバイスねがいます
> 先日も質問いたしました 岡元です。
>
> 度々の質問で恐縮ですが、 CoolDeploy時に DIするところで例外が発生しております。
>
> 回避策やあるべき姿等アドバイスいただければ ありがたいです。
> また、デフォルトで Serviceをprototypeで登録する理由についてもうかがえれば 、私の勉強になりますので
> こちらも おしめしいただければと思います。
>
>
> 環境は以下のとおりです
>
> Seasar Container 2.4.44
> S2JDBC 2.4.44
> S2Wicket 1.4.17.1
> Wicket 1.4.17
>
> 現象)
> 現在 S2JDBCの S2AbstractService を継承したサービスクラスと それを利用したサービスクラスを作成しております
>
> 具体的には 下記のパッケージ構成となっています。
> A) xxxxxxxxx.service Bを利用するサービス (複数 の tableサービスを利用するためDIの設定をしている)
> B) xxxxxxxxx.service.table テーブルに対応するS2AbstractServiceの継承クラス
>
> また、 サービスをSingltonで利用したいと考えておりますため、以前ご教授いただいた設定を creator.diconにしております
>
> この状態で、 CoolDeploy時に初期化処理で、 Aのサービスを生成する際に 表題および下記スタックトレースに
> ある例外が発生しております。
>
> 私なりに 調査した内容としては、
> 1) http://www.seasar.org/wiki/index.php?FAQ%2FS2Container の
> instance属性でrequestを設定するとnullでエラーになる。
> という指摘事項と
> 2) creator.diconの設定を標準にして ためしたところ、 問題がなくなったことがあります。
>
>
> これらより、上記でBに設定した サービス群がおそらく prototype か何かで登録されているのだろうと推測しております。
>
> なお、サービスを Singltonにしようとしている理由は のちのち DBの内容を メモリ上にキャッシュすることを
> 考えているためです。
>
>
> 以下がスタックトレースです。
>
> 2011-08-02 12:05:09.707:WARN::failed wicket.XXXXXXXXXX:
> org.seasar.framework.beans.IllegalPropertyRuntimeException:
> [ESSR0059]クラス(xxxxxxxxxxxxxx.service.TablenameService)のプロパティ(tablenameService)の設定に失敗しました。理由はorg.seasar.framework.exception.InvocationTargetRuntimeException:
> [ESSR0043]xxxxxxxxxxxxxx.service.table.TablenameServiceが呼び出した対象が不正です。理由はorg.seasar.framework.exception.EmptyRuntimeException:
> [ESSR0007]S2Containerはnullあるいは空であってはいけません
> 2011-08-02 12:05:09.708:WARN::Failed startup of context
> [E-MAIL ADDRESS DELETED]{/XXXXXXXXX,,/home/user/source/src/main/webapp}
> org.seasar.framework.beans.IllegalPropertyRuntimeException:
> [ESSR0059]クラス(xxxxxxxxxxxxxx.service.TablenameService)のプロパティ(tablenameService)の設定に失敗しました。理由はorg.seasar.framework.exception.InvocationTargetRuntimeException:
> [ESSR0043]xxxxxxxxxxxxxx.service.table.TablenameServiceが呼び出した対象が不正です。理由はorg.seasar.framework.exception.EmptyRuntimeException:
> [ESSR0007]S2Containerはnullあるいは空であってはいけません
> at org.seasar.framework.container.assembler.AbstractBindingTypeDef.getValue(AbstractBindingTypeDef.java:297)
> at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindAuto(AbstractBindingTypeDef.java:202)
> at org.seasar.framework.container.assembler.BindingTypeShouldDef.doBind(BindingTypeShouldDef.java:58)
> at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:78)
> at org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:68)
> at org.seasar.framework.container.deployer.SingletonComponentDeployer.assemble(SingletonComponentDeployer.java:68)
> 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 メーリングリストの案内