2007年5月13日日曜日

Seasar2のconvention.diconに複数のルートパッケージを追加

スズキです。

Seasar2でjarファイルにあるDAO(別パッケージ)をDI/AOPしようとしたときに、
今までは、JarComponentAutoRegisterをapp.diconに書くことによって
実現していました。

近頃、SmartDeployを覚えて、同様のことを試すと、
例外が発生してしまいます。(どのような例外かは忘れてしまいました)

で、途方にくれていたら、ふと、
ルートパッケージを定義しているconvention.diconの、
実際にルートパッケージを追加するメソッドは
addRootPackageName
だったなー。
"add"!?、
"set"じゃないんだ!
ということで、下記を試してみたら、見事にjarのほうのパッケージも
ルートパッケージとして認識して、SmartDeployを通して、
DAOもDI/AOPされるようになりました。

--------convention.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC
    "-//SEASAR//DTD S2Container 2.4//EN"
    "http://www.seasar.org/dtd/components24.dtd">
<components>
  <component
      class="org.seasar.framework.convention.impl.NamingConventionImpl">
    <initMethod name="addRootPackageName">
      <arg>"jp.co.iret.suz.user"</arg>
    </initMethod>
    <initMethod name="addRootPackageName">
      <arg>"jp.co.iret.suz.common"</arg>
    </initMethod>
  </component>
</components>
--------

パッケージねたはもう一つあります。

--
blog: http://suz-lab.blogspot.com/

0 コメント: