[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 メーリングリストの案内