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

mea aus [E-MAIL ADDRESS DELETED]
2013年 4月 25日 (木) 21:08:53 JST


山中です。

小谷さん、ありがとうございます。
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
>
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-dotnet/attachments/20130425/9b8f8adf/attachment.html>


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