[seasar-dotnet:2277] Re: S2Dao DBアクセスがうまくいきません

kotani.k [E-MAIL ADDRESS DELETED]
2013年 4月 26日 (金) 07:05:18 JST


山中さん

小谷です。

駄目でしたか。。。
環境については了解しました。

お手数ですが、下記の確認をしてみていただけないでしょうか?
・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
>
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-dotnet/attachments/20130426/9e409dbe/attachment.html>


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