[seasar-dotnet:260] Aspectが適用されない現象

m.okuyama e_starbucks @ yahoo.co.jp
2006年 7月 1日 (土) 02:22:56 JST


奥山です。
先日リリースされた
s2container.net-1.2.0を利用していますが、
あるケースでAspectが適用されない現象が起きており困っております。

[環境]
・s2container.net-1.2.0
・.Net Framework2.0

[diconファイル構成]
app.diconでComp.diconをインクルードし、Comp.diconでFramework.diconをインクルードしています。
diconファイルの構成を記載しておきます。

■app.dicon
<components namespace="Root">
  <include path="Comp.dicon" />
</components>

■Comp.dicon
<components namespace="Hoge.Framework.Server.Biz.Comp">
  <include path="Framework.dicon" />
  <component name="HogeComp" class="Hoge.Framework.Server.Biz.Comp.Impl.HogeCompImpl">
    <aspect>traceInterceptor</aspect>
  </component>
</components>

■Framework.dicon
<components namespace="Hoge.Framework.Server">
  <component name="traceInterceptor" class="Seasar.Framework.Aop.Interceptors.TraceInterceptor"/>
  <component name="dbExceptionInterceptor" class="Hoge.Framework.Server.Data.DbExceptionInterceptor">
    <arg>
      <component class="Hoge.Framework.Server.Data.Impl.OracleExceptionHandler" />
    </arg>
  </component>
  <component name="mapper" class="Hoge.Framework.Server.Ibatis.Impl.MapperImpl">
    <property name="MaxResults">300</property>
    <property name="MapPath">".\\config\\SqlMap.config"</property>
    <aspect>traceInterceptor</aspect>
    <aspect>dbExceptionInterceptor</aspect>
  </component>
</components>


[調査した内容]
HogeCompにはmapperのインターフェイス定義のsetterが用意されておりDIされます。
ここでmapperに対してdbExceptionInterceptorとtraceInterceptorがAspectされません。
一方でAspect対象を変えてHogeCompImplにdbExceptionInterceptorとtraceInterceptorのAspectを定義すると正常に動作しま
す。

曖昧な情報で非常に申し訳ないのですが、何かお気づきの点などありましたら教えて下さいませんでしょうか?

ちなみにSubversionのリポジトリから5月下旬くらいに取得したソース
(trunk,.NetFramework2.0用)を
そのままビルドして利用している時には問題はありませんでした。
1.2.0の正式リリースに伴いSeasar.dllを入れ替えましたところ、
当該事象が発生しています。

-- 
m.okuyama


--------------------------------------
Let's start Yahoo! Auction  -  Free Campaign Now!
http://pr.mail.yahoo.co.jp/auction/


seasar-dotnet メーリングリストの案内