[seasar-dotnet:2278] Re: S2Dao DBアクセスがうまくいきません
mea aus
[E-MAIL ADDRESS DELETED]
2013年 4月 27日 (土) 00:01:01 JST
小谷さん
山中です。
・SingletonS2ContainerFactory.Init()メソッドは呼んでいるか?
→呼んでいました。
・他のプロパティインジェクションは機能しているか?
→requestやsessionということでいいでしょうか?セットされていました。
・Seasar.NET1.3.19+.NET Framework3.5で同じ処理を実行した場合も同様(DataSourceがnullのまま)か?
→同じでした。
いただいた確認事項も含め色々と試行錯誤の中、S2ContainerからQuilへ変更したところ、あっさりDataSourceがとれました。
規模の小さいアプリで、S2Containerを使う理由も特にありませんので、あきらめようと思います。
S2Containerでだめだった根本原因はわかっておりませんが、クローズとさせてください。
お手数をおかけし、申し訳ありません。ありがとうございました。
2013/4/26 kotani.k <keikotani926 @ gmail.com>
> 山中さん
>
> 小谷です。
>
> 駄目でしたか。。。
> 環境については了解しました。
>
> お手数ですが、下記の確認をしてみていただけないでしょうか?
> ・SingletonS2ContainerFactory.Init()メソッドは呼んでいるか?
> ・他のプロパティインジェクションは機能しているか?
> ・Seasar.NET1.3.19+.NET Framework3.5で同じ処理を実行した場合も同様(DataSourceがnullのまま)か?
>
> 以上です。
> よろしくお願い致します。
>
>
>
> 2013年4月25日 21:08 mea aus <meaaus @ gmail.com>:
>
> 山中です。
>>
>> 小谷さん、ありがとうございます。
>> OracleEx.diconのデータソースについての定義、変えてみましたがDataSourceはnullのままでした。
>>
>> 環境は、下の通りです。
>> .NET Framework 4
>> Seaser 1.4.0
>>
>> C# ASP.NET MVC
>> 開発マシン:Windows7 64bit
>> DBサーバー:REHL6 Oracle11g
>>
>>
>> よろしくお願い致します。
>>
>> 2013/4/25 kotani.k <keikotani926 @ gmail.com>
>>
>> 山中さん
>>>
>>> 小谷です。
>>>
>>> OracleEx.diconのデータソースについての定義を
>>> <component name="SqlDataSource" class="Seasar.Extension.Tx.
>>> Impl.TxDataSource">
>>> ↓
>>> <component name="DataSource" class="Seasar.Extension.Tx.
>>> Impl.TxDataSource">
>>>
>>> に変えるといかがでしょうか?
>>> DataSourceがnullということはインジェクションが行われていないようなので。
>>>
>>> また、できればお使いになっているSeasar.NETと.NET <http://Seasar.xn--net-yb4b.NET>Frameworkのバージョン、環境を教えていただけるとありがたいです。
>>> (ログを見る限りではASP.NET MVC?)
>>>
>>> 以上です。
>>>
>>>
>>>
>>>
>>> 2013年4月23日 22:19 mea aus <meaaus @ gmail.com>:
>>>
>>>> こんばんは。山中と申します。
>>>> S2dao.netを使ってWebアプリを作成していますが、うまくDBアクセスできず、原因がわからず困っています。
>>>> Seasar.Dao.Impl.DaoMetaDataImpl.Initialize()
>>>> の85行目、DataSourceがnullで落ちているようなので、
>>>> DataSourceがうまく取得できていないようです。
>>>> 原因について、何か心当たりがありましたらご教授いただけますでしょうか。
>>>> よろしくお願い致します。
>>>>
>>>> ・実行コード
>>>> ...
>>>> IS2Container container = SingletonS2ContainerFactory.Container;
>>>> IxxxDao xxxDao = container.GetComponent(typeof(IxxxDao)) as
>>>> IxxxDao; ←Container、Daoはうまく生成できています
>>>> xxxDao.GetOverview(1234); ←ここでNullPointerが発生
>>>>
>>>> ・スタックトレース
>>>>
>>>> [NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。]
>>>> Seasar.Dao.Impl.DaoMetaDataImpl.Initialize() +85
>>>> Seasar.Dao.Impl.DaoMetaDataFactoryImpl.CreateDaoMetaData(Type
>>>> daoType) +375
>>>> Seasar.Dao.Impl.DaoMetaDataFactoryImpl.GetDaoMetaData(Type daoType)
>>>> +187
>>>> Seasar.Dao.Interceptors.S2DaoInterceptor.Invoke(IMethodInvocation
>>>> invocation) +159
>>>> Seasar.Framework.Aop.Proxy.AopProxy.Invoke(IMessage msg) +842
>>>> System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
>>>> msgData, Int32 type) +237
>>>> xxx.Dao.IxxxHistoryDao.GetOverview(Int32 zzz) +0
>>>> PaymentRefund.Controllers.xxx.Overview(String zzz) in
>>>> D:\develop\iis\xxx\xxx\Controllers\xxx.cs:47
>>>> lambda_method(Closure , ControllerBase , Object[] ) +162
>>>> System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase
>>>> controller, Object[] parameters) +51
>>>> System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext
>>>> controllerContext, IDictionary`2 parameters) +409
>>>>
>>>> System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext
>>>> controllerContext, ActionDescriptor actionDescriptor, IDictionary`2
>>>> parameters) +52
>>>>
>>>> System.Web.Mvc.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a()
>>>> +127
>>>>
>>>> System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter
>>>> filter, ActionExecutingContext preContext, Func`1 continuation) +436
>>>>
>>>> System.Web.Mvc.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c() +61
>>>>
>>>> System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext
>>>> controllerContext, IList`1 filters, ActionDescriptor actionDescriptor,
>>>> IDictionary`2 parameters) +305
>>>>
>>>> System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext
>>>> controllerContext, String actionName) +830
>>>> System.Web.Mvc.Controller.ExecuteCore() +136
>>>> System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
>>>> +111
>>>>
>>>> System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext
>>>> requestContext) +39
>>>> System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__4() +65
>>>> System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +44
>>>>
>>>> System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult
>>>> _) +42
>>>> System.Web.Mvc.Async.WrappedAsyncResult`1.End() +141
>>>> System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult
>>>> asyncResult, Object tag) +54
>>>> System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult
>>>> asyncResult, Object tag) +40
>>>> System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult
>>>> asyncResult) +52
>>>>
>>>> System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult
>>>> result) +38
>>>>
>>>> System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
>>>> +8836977
>>>> System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
>>>> completedSynchronously) +184
>>>>
>>>>
>>>>
>>>> ・設定ファイル
>>>> [Web.config]
>>>> ...
>>>> <configSections>
>>>> <section name="log4net"
>>>> type="System.Configuration.IgnoreSectionHandler" />
>>>> <section name="seasar" type="Seasar.Framework.Xml.S2SectionHandler,
>>>> Seasar" />
>>>> </configSections>
>>>>
>>>> <!-- ▼log4netの設定 -->
>>>> <log4net>
>>>> (略)
>>>> </log4net>
>>>>
>>>> <!-- ▼Seasarの設定 -->
>>>> <seasar>
>>>> <!--ルートのdiconファイルを設定-->
>>>> <configPath>xxx.Dicon.app.dicon</configPath>
>>>> <assemblys>
>>>> <!--読み込むアセンブリ-->
>>>> <assembly>Seasar.Dao</assembly>
>>>> <assembly>System.Data.OracleClient, version=1.0.5000.0,
>>>> Culture=neutral, PublicKeyToken=b77a5c561934e089</assembly>
>>>> </assemblys>
>>>> </seasar>
>>>> ...
>>>>
>>>> [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">"Data Source=aaa;User
>>>> Id=bbb;Password=ccc;"</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>
>>>>
>>>> _______________________________________________
>>>> seasar-dotnet mailing list
>>>> seasar-dotnet @ ml.seasar.org
>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>
>>>>
>>>
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> seasar-dotnet @ ml.seasar.org
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>>>
>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> seasar-dotnet @ ml.seasar.org
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
>>
>
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-dotnet/attachments/20130427/3309165c/attachment.html>
seasar-dotnet メーリングリストの案内