[Seasar-user:7601] Re: [Teeda][Dolteng] Cool Deployに切り替えるとAjaxコンポーネント使用時にエラーが発生します

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 5月 11日 (金) 19:00:18 JST


小林 (koichik) です.

Date:    Fri, 11 May 2007 18:23:38 +0900
From:    Satoshi Takei <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:7599] [Teeda][Dolteng] Cool Deployに切り替えるとAjaxコンポーネント使用時にエラーが発生します

> Hot DeployからCool Deployへ切り替えると、
> Daoを使用しているAjaxコンポーネント(ajax.diconに登録)を使用する際に
> エラーが発生します。

SMART deploy で自動登録されるコンポーネントは
ルートのコンテナに登録されるため,ajax.dicon の
コンポーネントからは自動登録された Dao を見ることは
できません.
# HOT deploy で見えてしまうのがよくないですね...
# COOL deploy と同じ動きになるよう考えてみます.

対処としては,EmpAjax というコンポーネントを
app.dicon に記述するか,ajax.dicon を通常の
<include> ではなく,XInclude でインクルード
してください.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
  "http://www.seasar.org/dtd/components24.dtd">
<components xmlns:xi="http://www.w3.org/2001/XInclude">
  <include path="convention.dicon"/>
  <include path="aop.dicon"/>
  <include path="app_aop.dicon"/>
  <include path="teedaExtension.dicon"/>
  <include path="dao.dicon"/>
  <include path="dxo.dicon"/>
  <xi:include href="/ajax.dicon"/>
</components>

のようになります.

XInclude については以下のドキュメントを参照してください.

http://s2container.seasar.org/ja/xinclude.html

今回の現象についても「いつ XInclude を使うか」に
記述があります.
# SMART Deploy のドキュメントにも記述が必要ですね.

こちらも参考にどうぞ.

http://d.hatena.ne.jp/szk-takanori/20061213#1166023612

と,この情報を読み直して Teeda にバンドルされている
Xerces-2.6.2 では XInclude が使えないことを思い出しました.
申し訳ありませんが,EmpAjax を app.dicon に定義すると
いうことでお願いします.


-- 
<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 メーリングリストの案内