我将一个ASP.NET Webform应用程序与Spring.Net和NHibernate一起运行到ASP.NET MVC3。在创建一个新项目并验证Spring.Net可以在同一解决方案中的项目之间正确注入依赖项后,我继续导入新解决方案中的服务和持久层项目。Spring.Net(&NHibernate?),缺少异常转换器
我的映射现在看起来有点OK(更多关于它在这篇文章的末尾),但是当我启动应用程序,我得到以下错误:
No persistence exception translators found in container. Cannot perform exception translation.
[ConfigurationErrorsException: Error creating context 'spring.root': No persistence exception translators found in container. Cannot perform exception translation.]
如果我理解这口井,这意味着一个例外被提出,并且Spring.Net不知道如何映射/处理它......这是否正确?
假设从NHibernate的来了,在section 44.3.3 from the SpringFramework documentation有关NHibernate的整合解释,我添加了一个ExceptionTranslationProcessor到我的映射......
<object type="Spring.Dao.Attributes.PersistenceExceptionTranslationPostProcessor, Spring.Data"/>
...但它似乎并没有做任何事情,我不知道在哪里看得更远。任何人有一个好主意或暗示?
在此先感谢!
下面是参考用途的一些数据:
要我加入了spring section group
和XML定义文件的引用的web.config文件:
<configuration>
<!-- Snip -->
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.MvcContextHandler, Spring.Web.Mvc3"/>
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/>
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/>
</sectionGroup>
</configSections>
<spring>
<context>
<resource uri="file://~/Config/controllers.xml"/>
<resource uri="assembly://Service/Service.Config/Service.xml"/>
<resource uri="assembly://Persistence.Hibernate/Persistence.Hibernate.Config/Persistence.xml"/>
</context>
</spring>
<!-- Snip -->
</configuration>
的PersistenceExceptionTranslationPostProcessor
我在加Persistence.xml文件。出于想法,我也尝试将它添加到其他XML,但它没有做任何事情。
非常感谢,这确实只是一个掩盖。真正的根本原因是NHibernate(Iesi.Collections)没有被复制到输出目录的依赖......因此Spring很难实现DAO层的实例... damn> _ < –
+1啊,很好找。 – Marijn