[Seasar-user:10023] Re: [teeda] バッチ処理のdiconファイル定義

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 8月 22日 (水) 15:30:05 JST


小林 (koichik) です.

Date:    Wed, 22 Aug 2007 11:24:31 +0900
From:    松山 大樹 <[E-MAIL ADDRESS DELETED]>
To:       <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:10015] [teeda] バッチ処理のdiconファイル定義

>  とりあえず、app.dicon をコピーして、teedaExtension.dicon を除いた
> dicon ファイルを、
> 
> <components>
>   <include path="convention.dicon"/>
>   <include path="aop.dicon"/>
>   <include path="app_aop.dicon"/>
>   <include path="dao.dicon"/>
>   <include path="dxo.dicon"/>
>   <!-- 共通jarファイル用 -->
>   <component class="org.seasar.framework.container.autoregister.JarComponentAutoRegister">
>     <property name="jarFileNames">"HogeCommons"</property>
>     <property name="instanceDef">@[E-MAIL ADDRESS DELETED]</property>
>       <initMethod name="addClassPattern">
>         <arg>"jp.co.hoge"</arg>
>         <arg>".*Impl,.*Logic"</arg>
>       </initMethod>
>   </component>
> </components>

Web アプリの方が SMART deploy を使っているなら,
バッチでも SMART deploy を使うのがいいと思います.
実際には WARM deploy を使うのがオススメです.

なお,creator.dicon からは pageCreator など
不要な Creator は削除してください.
# creator.dicon は共用できないと思います.

> Exception in thread "main" java.lang.UnsupportedOperationException: createRequestComponentDeployer
> 	at org.seasar.framework.container.deployer.ComponentDeployerFactory$DefaultProvider.createRequestComponentDeployer(ComponentDeployerFactory.java:191)
> 	at org.seasar.framework.container.deployer.ComponentDeployerFactory.createRequestComponentDeployer(ComponentDeployerFactory.java:100)
> 
>  という例外になります。

リクエストスコープのコンポーネントはコンテナの
初期化時に外部コンテキストを設定しないと利用
できません.

とはいえ,問題は外部コンテキストが無いことではなく,
バッチでリクエストスコープのコンポーネントが
取得されていることだと思います.
メッセージが不親切で申し訳ないですが,デバッガを
使うなどして取得されているコンポーネントが何か
確認して,それが使用されないようにするか,その
コンポーネントのインスタンス属性を見直してください.


--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>



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