[seasar-dotnet:934] Re: 作成したDaoインタフェースのメソッド呼び出しで例外発生

Yoshihiro OSHITA [E-MAIL ADDRESS DELETED]
2008年 10月 11日 (土) 16:45:05 JST


小谷様、
お世話になります、大下です。
早速の返信、ありがとうございます。
SQLiteConnection.BeginTransaction()
SQLiteTransaction.Commit()
などで行うトランザクションもやるつもりなのですが、
ひとまずは簡単な実験から、ということで試しておりました。
(DBも勉強途中なので、見当外れなことを言っておりましたら、すみません)

さて、ご指摘いただいた

>      <component class="Seasar.Extension.Tx.Impl.TransactionContext" />

をAdo.diconに追加してみました。
すると、今度は、GetAllLibrariesメソッドを呼び出す手前の
SingletonS2ContainerFactory.Init()
のところで、
「型 'Seasar.Framework.Container.Impl.ComponentDefImpl' のオブジェクトを型
'Seasar.Framework.Container.IArgDef' にキャストできません。」
という例外が発生するようになってしまいました。
StackTraceは、(またまた長くて、すみません)
=======================================
場所
Seasar.Framework.Container.Factory.ComponentTagHandler.End(TagHandlerContext
context, String body)
場所 Seasar.Framework.Xml.XmlHandler.End(TagHandler handler, String body)
場所 Seasar.Framework.Xml.XmlHandler.End()
場所 Seasar.Framework.Xml.XmlHandler.EndElement(String qName)
場所 Seasar.Framework.Xml.XmlHandlerParser.Parse(StreamReader input)
場所 Seasar.Framework.Xml.XmlHandlerParser.Parse(String path)
場所
Seasar.Framework.Container.Factory.XmlS2ContainerBuilder.Include(IS2Container
parent, String path)
場所
Seasar.Framework.Container.Factory.S2ContainerFactory.Include(IS2Container
parent, String path)
場所
Seasar.Framework.Container.Factory.IncludeTagHandler.Start(TagHandlerContext
context, IAttributes attributes)
場所 Seasar.Framework.Xml.XmlHandler.Start(TagHandler handler, IAttributes
attributes)
場所 Seasar.Framework.Xml.XmlHandler.Start(IAttributes attributes)
場所 Seasar.Framework.Xml.XmlHandler.StartElement(String qName, IAttributes
attributes)
場所 Seasar.Framework.Xml.XmlHandlerParser.Parse(StreamReader input)
場所 Seasar.Framework.Xml.XmlHandlerParser.Parse(String path)
場所
Seasar.Framework.Container.Factory.XmlS2ContainerBuilder.Include(IS2Container
parent, String path)
場所
Seasar.Framework.Container.Factory.S2ContainerFactory.Include(IS2Container
parent, String path)
場所
Seasar.Framework.Container.Factory.IncludeTagHandler.Start(TagHandlerContext
context, IAttributes attributes)
場所 Seasar.Framework.Xml.XmlHandler.Start(TagHandler handler, IAttributes
attributes)
場所 Seasar.Framework.Xml.XmlHandler.Start(IAttributes attributes)
場所 Seasar.Framework.Xml.XmlHandler.StartElement(String qName, IAttributes
attributes)
場所 Seasar.Framework.Xml.XmlHandlerParser.Parse(StreamReader input)
場所 Seasar.Framework.Xml.XmlHandlerParser.Parse(String path)
場所
Seasar.Framework.Container.Factory.XmlS2ContainerBuilder.Include(IS2Container
parent, String path)
場所
Seasar.Framework.Container.Factory.S2ContainerFactory.Include(IS2Container
parent, String path)
場所
Seasar.Framework.Container.Factory.IncludeTagHandler.Start(TagHandlerContext
context, IAttributes attributes)
場所 Seasar.Framework.Xml.XmlHandler.Start(TagHandler handler, IAttributes
attributes)
場所 Seasar.Framework.Xml.XmlHandler.Start(IAttributes attributes)
場所 Seasar.Framework.Xml.XmlHandler.StartElement(String qName, 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)
場所 Seasar.Framework.Container.Factory.SingletonS2ContainerFactory.Init()
場所 MyS2DaoSample.Program.Main(String[] args)
場所 C:\Documents…\Visual Studio
2008\Projects\MyS2DaoSample\MyS2DaoSample\Program.cs:行 18
=======================================
のようになっております。
今度は、どうしたものでしょうか?


小谷です。
>
> 詳細な環境のご連絡ありがとうございます。
>
> 設定を拝見したところ「TransactionContext」というコンポーネントの設定がないようです。
> Ado.diconに以下の設定を追加して試してみていただけないでしょうか。
>
>  <!-- ローカルトランザクション用のインターセプターで使用します。 -->
>  <component class="Seasar.Extension.Tx.Impl.TransactionContext" />
>
> お使いのAdo.diconの中で設定されているTxDataSourceというデータソースは
> トランザクションを管理するためにTransactionContextというコンポーネントを
> 必要とします。
>
> トランザクション管理を行わないのであれば「Seasar.Extension.Tx.Impl.TxDataSource」
> となっている部分を「Seasar.Extension.ADO.Impl.DataSourceImpl」に
> 変更していただいても問題は解決できるのではないかと思います。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-dotnet/attachments/20081011/af27e867/attachment.html>


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