[seasar-dotnet:228] Re: S2Containerの初期化時にSeasar.Dao名前空間のClassを読み込めない
Hiroaki Fujii
jiifureit @ jiifureit.ac
2006年 6月 1日 (木) 12:53:24 JST
藤井です。
WindowsFormなのかASPなのかよく分かりませんが、
WindowsFormと仮定します。
確認して欲しいことがあります。
TestCaseのプロジェクトのApp.Configの中で、
<seasar>
<assemblys>
<assembly>Seasar.Dao</assembly> <--ここ
(中略)
</assemblys>
<configPath>Examples.dicon</configPath>
</seasar>
<--ここと書いた行があるでしょうか?
Exeのプロジェクトでも同じです。
次に、Testcaseのプロジェクトは出力アセンブリがDLLと思いますが
VS2003の場合、上記のApp.configはビルド先にコピーされません。
Exeの場合だけです。
なので、手動でApp.configをDLLのビルド先にコピーして、仮にDLL名を
hoge.dllとすると、App.configからhoge.dll.configに変更します。
VS2005では、自動でコピーしてくれるか不明ですが(未使用のため)
もしコピーされていないなら、手動でコピーしてください。
以上、行われているか確認してみてください。
弊社内で使用するとき、上記のミスをけっこうしてしまいます。
関 真理子 wrote:
> はじめまして、関と申します。
>
> 次期案件に向けて、S2Container.NET・S2Dao.NETの動作検証をしています。
> 件名の現象が発生し、困っています。アドバイスいただけませんでしょうか。
>
> ○環境
> WindowsXP SP2
> VS2005 Team Edition
> .NET2.0
> S2Container.NET 1.2.0-RC2 (.NET 2.0)
> S2Dao.NET 0.4.2
>
> ○現象
> S2Dao.NETのExamplesを見てAutoSelectを行うメソッドを作成し、
> VS2005についているテスト機能&Mainメソッドから実行しています。
>
> その際、
> IS2Container container = S2ContainerFactory.Create("hoge.dicon");
> のところで、Seasar.Dao配下のクラスが見れずClassNotFoundRuntimeException
> が発生してしまいます。
>
> dllが見れてないのかと思い、S2ContainerFactory.Createメソッドの前に、
> Seasar.Dao配下のEndCommentNotFoundRuntimeExceptionクラスをnewしてみたところ、
> 正しくnewでき、さらにコンテナの初期化も正しく動作しました。
> (EndCommentNotFoundRuntimeExceptionのnewを外すとまた
> ClassNotFoundRuntimeExceptionが発生します)
>
> dllの指定は、プロジェクトの参照設定で行っています。
>
> 以下は、発生しているエラーです。
> ----------------
> [エラーメッセージ]
> テスト メソッド TestProject1.S2trial.S2Dao.AutoSelect.FreeSpaceDaoTest.FreeSpaceAutoSelectTestMethod は例外をスローしました: Seasar.Framework.Container.Factory.ClassNotFoundRuntimeException: [ESSR0044]Class not found, details are "Seasar.Dao.Impl.DaoMetaDataFactoryImpl"。
> [スタックトレース]
> 場所 Seasar.Framework.Xml.XmlHandler.Start(TagHandler handler, IAttributes attributes)
> 場所 Seasar.Framework.Xml.XmlHandlerParser.Parse(StreamReader input)
> 場所 Seasar.Framework.Xml.XmlHandlerParser.Parse(String path)
> 場所 Seasar.Framework.Container.Factory.XmlS2ContainerBuilder.Build(String path)
> 場所 Seasar.Framework.Container.Factory.S2ContainerFactory.Create(String path)
> 場所 TestProject1.S2trial.S2Dao.AutoSelect.FreeSpaceDaoTest.FreeSpaceAutoSelectTestMethod() 場所 C:\mspadmin\workspace\mspadmin-trial\s2trial\TestProject1\S2trial.S2Dao\AutoSelect\FreeSpaceDaoTest.cs:行 75
> ----------------
>
>
> 何かお気づきの点ありましたらお教えいただければと思います。
> よろしくお願いします。
>
> 以上です。
seasar-dotnet メーリングリストの案内