[seasar-dotnet:749] assemblyの定義について

Masafumi Teraoka [E-MAIL ADDRESS DELETED]
2008年 1月 30日 (水) 11:18:21 JST


寺岡と申します。
お世話になっております。

初めて、S2.NETを利用しようとしております。
下記の環境、構成でS2Daoを使用しております。

S2Testをスタートアッププロジェクトにして、デバッグすると正常に終了するのですが、
Batchをスタートアッププロジェクトにして、デバッグすると

Seasar.Framework.Container.Factory.ClassNotFoundRuntimeException はハンドルされませんでした。
  Message="[ESSR0044]クラスが見つかりませんでした。詳細は "Seasar.Dao.Impl.DaoMetaDataFactoryImpl""
  Source="Seasar"

というエラーが発生します。

app.configで指定した

<assembly>Seasar.Dao</assembly>

が通っていないからなのでしょうか?
アセンブリの定義が問題ではないのでしょうか?

何かお分かりであれば、ご意見お聞かせ頂ける様宜しくお願い致します。


環境----------------------------------
OS:Windows Vista Business
言語:Visual Bbasic 2005
DB:Oracle9.2
--------------------------------------

構成----------------------------------
【ソリューション】
S2Test
   ┣━【プロジェクト】S2Test
   ┃    ┣━【参照】Seasar.dll、Seasar.Dao.dll
   ┃    ┣━【設定ファイル】app.config、app.dicon(埋め込まれたリソース)、OracleEx.dicon(埋め込まれたリソース)
   ┃    ┗━【クラス】App.vb
   ┃
   ┗━【プロジェクト】Batch
         ┣━【参照】S2Testプロジェクト
         ┗━【フォーム】App.vb
--------------------------------------

app.config------------------------------
<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="seasar" type="Seasar.Framework.Xml.S2SectionHandler, Seasar"/>
  </configSections>

  <appSettings>
    <!-- oracleex.diconで使用 -->
    <add key="ConnectionString" value="Data Source=OCREXP_OCRKSVEX;User Id=SQLWIN;Password=AUTHORA;"/>
  </appSettings>

  <seasar>
    <configPath>S2Test/app.dicon</configPath>
    <assemblys>
      <assembly>Seasar.Dao</assembly>
      <assembly>System.Data.OracleClient, version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</assembly>
    </assemblys>
  </seasar>
</configuration>
--------------------------------------

app.dicon------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components>
    <!-- S2Dao.NETでOracleに接続 -->
    <include path="OracleEx.dicon" />

    <component class="S2Test.Dao.IHizukeDao" name="dao">
        <aspect>OracleEx.DaoInterceptor</aspect>
    </component>

</components>
--------------------------------------

OracleEx.dicon--------------------------
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components namespace="OracleEx">
    <!-- データプロバイダ -->
    <component name="Oracle" class="Seasar.Extension.ADO.DataProvider">
        <property name="ConnectionType">"System.Data.OracleClient.OracleConnection"</property>
        <property name="CommandType">"System.Data.OracleClient.OracleCommand"</property>
        <property name="ParameterType">"System.Data.OracleClient.OracleParameter"</property>
        <property name="DataAdapterType">"System.Data.OracleClient.OracleDataAdapter"</property>
    </component>

    <!-- データソース -->
    <component name="SqlDataSource" class="Seasar.Extension.Tx.Impl.TxDataSource">
    <property name="DataProvider">Oracle</property>
        <!-- 接続文字列は構成ファイルから取得 -->
        <property name="ConnectionString"> appSettings['ConnectionString']</property>
    </component>

     <!-- DaoInterceptor -->
    <component class="Seasar.Extension.ADO.Impl.BasicDataReaderFactory" />
    <component class="Seasar.Extension.ADO.Impl.BasicCommandFactory" />
    <component class="Seasar.Dao.Impl.DaoMetaDataFactoryImpl" />
    <component name="DaoInterceptor" class="Seasar.Dao.Interceptors.S2DaoInterceptor"/>

    <!-- ローカルトランザクション用のインターセプター -->
    <component name="LocalRequiredTx" class="Seasar.Extension.Tx.TransactionInterceptor">
        <arg><component class="Seasar.Extension.Tx.Impl.LocalRequiredTxHandler" /></arg>
        <property name="TransactionStateHandler">TransactionContext</property>
    </component>

    <!-- 分離レベルの指定 -->
    <component name="TransactionContext" class="Seasar.Extension.Tx.Impl.TransactionContext">
        <property name="IsolationLevel">System.Data.IsolationLevel.ReadCommitted</property>
    </component>

</components>
--------------------------------------
app.vb---------------------------------
    Shared Sub Main()
        SingletonS2ContainerFactory.Init()
        Dim container As IS2Container = SingletonS2ContainerFactory.Container
        Dim dao As IHizukeDao = container.GetComponent(GetType(IHizukeDao))
        Debug.Print("成功!")
--------------------------------------

以上










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