[seasar-dotnet:229] Re: S2Containerの初期化時にSeasar.Dao名前空間のClassを読み込めない

関 真理子 seki.m @ buildsystem.jp
2006年 6月 1日 (木) 13:49:44 JST


関です。

解決しました!
藤井さんありがとうございます。

そもそも「App.Config」を作成していませんでした。。
(WindowsFormだけが使用するファイルと勘違いしてました。)

ちなみにVS2005のTestでは、
自動でApp.configからhoge.dll.configに変更してコピーしてくれました。

初歩的かつseasarに関係無い質問で申し訳ありませんでした。
ありがとうございました。


On Thu, 01 Jun 2006 12:53:24 +0900
Hiroaki Fujii <jiifureit @ jiifureit.ac> wrote:

> 藤井です。
> 
> 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 mailing list
> seasar-dotnet @ ml.seasar.org
> https://www.seasar.org/mailman/listinfo/seasar-dotnet

-- 
関真理子 <seki.m @ buildsystem.jp>




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