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

koyak [E-MAIL ADDRESS DELETED]
2008年 1月 30日 (水) 13:30:23 JST


寺岡様

小谷です。

app.configに
><assembly>Seasar.Dao</assembly>

としている場合、恐らくapp.configと
同じパス上にSeasar.Dao.dllがないか
見に行っているかと思います。

そして、app.configが参照されるのは
基本的に実行ファイルと同じパス上にこのファイルが
ある場合だと思います。

コンパイル時の構成によって違ってくるのかも
しれないのですが、プロジェクトBatchの
実行ファイルが吐き出されているフォルダ内に
app.config,Seasar.dll,Seasar.Dao.dll
は出力されているかご確認いただけないでしょうか。

app.configがなかった場合はVisualStudio上で
app.configのプロパティを開くとコンパイル時の出力先が
定義できるはずですので、それを
「出力先のフォルダにコピー」(細かい文言は違うかもしれません)
にしてリビルドするといけるかもしれません。

------------------------------------
koyak
[E-MAIL ADDRESS DELETED]
------------------------------------

08/01/30 に Masafumi Teraoka<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 寺岡と申します。
> お世話になっております。
>
> 初めて、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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


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