[Seasar-user:17979] Re: コンテナの生成

渡辺茂昭 [E-MAIL ADDRESS DELETED]
2009年 7月 13日 (月) 18:38:50 JST


 渡辺茂昭です。

 ご回答ありがとうございます。
 やはりかなりお行儀の悪い手段のようですね。下記の提案を含めて、もっと健
全な方法でアプローチしようと思います。
 
 本当にありがとうございました。
 
>小林 (koichik) です.
>
>Date:    Mon, 13 Jul 2009 06:48:21 +0900
>From:    渡辺茂昭 <[E-MAIL ADDRESS DELETED]>
>To:      [E-MAIL ADDRESS DELETED]
>Subject: [Seasar-user:17975] コンテナの生成
>
>>  アプリケーションの仕様上、サーブレットコンテキストが生成された時点
>> (Servlet#init)で、新たにスレッドを立てて、そこでもコンテナを使用したいと
>> 思っています。
>>  生成したスレッド内でSingletonContainerを使用して処理を行ったところ、特
>> 定の何箇所かで頻繁にLinkageErrorが発生します(もちろん、スレッドを立てな
>> い時は発生しません)。
>
>Servlet#init() で,作成したスレッドのコンテキスト
>クラスローダに Web コンテナのコンテキストクラス
>ローダを設定してみてください.
>それが Web コンテナ的に合法かどうかは微妙ですが.
>
>> 1.一般的にこのような使い方で問題がないのでしょうか?
>
>個人的にはオススメしません.
>S2 関連プロダクトでもそういうことをやってたり
>するものがあるようなので,そうも言ってられない
>気はしますが,個人的にはオススメしません.
>EJB でスレッドの生成が禁止されているように,
>Servlet でも禁止しておけばよかったのにと思ってます.
>
>それよりは RMI や JMS などを使って外部の JVM に
>処理をゆだねる方がいいと思います.
>
>> 2.上記を回避するために、スレッド内で独自にコンテナを作成した場合、
>> S2ContainerFactory#createのパス指定は、どのように与えたらいいのでしょう
>> か?app.diconがコンテキスト内にあるため、単純にクラスパスからの絶対パス
>> というわけには行かないと思うのですが...
>
>独自スレッドで別途コンテナを作成することは
>もっとオススメしません.
>SingletonS2ContainerFactory に依存する部分が
>動かなくなるためです.
>
>
>-- 
><component name="koichik">
>    <property name="fullName">"Koichi Kobayashi"</property>
>    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
>    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
></component>
>
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-user


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