[Seasar-user:20970] Re: CoolDeploy 時の DI が失敗([ESSR0007]S2Containerはnullあるいは空であってはいけません) するのでアドバイスねがいます

Okamoto Tohru [E-MAIL ADDRESS DELETED]
2011年 8月 11日 (木) 10:11:18 JST


小林 (koichik) 様
皆様

岡元です
返答が遅くなり申し訳ありません。

アドバイスいただいたので、原因とおもわれるところがわかりました。

seasarのソースに手をいれて 例外のスタックトレースを取得しましたところ、
開発中のコードに DIされるべきメンバ変数に対して,
 public XX xx = SingltonS2Containr.getComponent(XX.class);
としていたことがわかりました。

これをやめたところ、起動時の例外は発生しなくなりました。

ありがとうございました。



2011/8/8 Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>:
> 小林 (koichik) です.
>
>> > 貼り付けられているログ (スタックトレース) の後に、原因となった例外の
>> > スタックトレースが cause:〜 で続いていませんか?
>>
>> ございません。
>
> となると、現在の情報だけではなんとも判断のしようがないですね。
> 以下のログにあるように、
>
>> >> >> 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:
>
> ・IllegalPropertyRuntimeException
> ・InvocationTargetRuntimeException
> ・EmptyRuntimeException
>
> と 3 つの例外が連鎖しているので、デバッガで最初の例外
> (EmptyRuntimeException) が発生した時点のスタックトレースを取得するなど
> してみてください。
>
>
> Date: Mon, 8 Aug 2011 15:58:31 +0900
> From: Okamoto Tohru <[E-MAIL ADDRESS DELETED]>
> Subject: [Seasar-user:20953] Re: CoolDeploy 時の DI が失敗([ESSR0007]S2Containerはnullあるいは空であってはいけません) するのでアドバイスねがいます
>
>> 岡元です
>> お世話になっております
>> 確認が遅くなりました。
>>
>> > 貼り付けられているログ (スタックトレース) の後に、原因となった例外の
>> > スタックトレースが cause:〜 で続いていませんか?
>>
>> ございません。
>> ログは mvn jetty:run で起動した際のログを転機しました。
>>
>>
>> > 状況からは EmptyRuntimeException は XXXXService のコンストラクタで
>> > 発生しているようですが、コンストラクタで SingletonS2ContainerFactory を
>> > 使っていたりしませんか?
>>
>> 使用しておりません。
>> Containerの生成は S2Wicketのみでおこなっております
>>
>>
>>
>>
>>
>>
>>
>> 2011/8/2 Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>:
>> > 小林 (koichik) です.
>> >
>> > 貼り付けられているログ (スタックトレース) の後に、原因となった例外の
>> > スタックトレースが cause:〜 で続いていませんか?
>> > 貼られているのは IllegalPropertyRuntimeException のスタックトレースですが、
>> > 一番必要なのはその大元となった EmptyRuntimeException が発生した場所です。
>> >
>> > 状況からは EmptyRuntimeException は XXXXService のコンストラクタで
>> > 発生しているようですが、コンストラクタで SingletonS2ContainerFactory を
>> > 使っていたりしませんか?
>> >
>> >
>> > Date: Tue, 2 Aug 2011 18:33:56 +0900
>> > From: Okamoto Tohru <[E-MAIL ADDRESS DELETED]>
>> > Subject: [Seasar-user:20945] Re: CoolDeploy 時の DI が失敗([ESSR0007]S2Containerはnullあるいは空であってはいけません) するのでアドバイスねがいます
>> >
>> >> 岡元です
>> >> お世話になります
>> >>
>> >> >> [ESSR0059]クラス(xxxxxxxxxxxxxx.service.TablenameService)のプロパティ(tablenameService)の設定に失敗しました。理由はorg.seasar.framework.exception.InvocationTargetRuntimeException:
>> >> >
>> >> > このプロパティは自分自身を参照するんですか?
>> >>
>> >>
>> >> 自分ではないです。 自分の下のパッケージにある ものです。
>> >> #ログを加工するときに 失敗しました
>> >>
>> >>  [ESSR0059]クラス(xxxxxxxxxxxxxx.service.XXXXService)のプロパティ(tablenameService)の設定に失敗しました。理由はorg.seasar.framework.exception.InvocationTargetRuntimeException:
>> >>
>> >> のほうが 適切でした。
>> >> 以上、補足です
>> >>
>> >>
>> >> 2011/8/2 Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>:
>> >> > 小林 (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 mailing list
>> >> > [E-MAIL ADDRESS DELETED]
>> >> > https://ml.seasar.org/mailman/listinfo/seasar-user
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> ------------------------------------------------------
>> >> 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 mailing list
>> > [E-MAIL ADDRESS DELETED]
>> > https://ml.seasar.org/mailman/listinfo/seasar-user
>> >
>>
>>
>>
>> --
>> ------------------------------------------------------
>> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>



-- 
------------------------------------------------------
Tohru Okamoto [E-MAIL ADDRESS DELETED]
-------------------------------------------------------


Seasar-user メーリングリストの案内