gpt4 book ai didi

.net - Spring.Net(& NHibernate?),缺少异常转换器

转载 作者:行者123 更新时间:2023-12-04 18:19:50 25 4
gpt4 key购买 nike

我正在将使用 Spring.Net 和 NHibernate 运行的 ASP.NET Webform 应用程序移植到 ASP.NET MVC3。创建一个新项目并验证 Spring.Net 可以在同一解决方案中正确地跨项目注入(inject)依赖项后,我继续在新解决方案中导入服务和持久层项目。

我的映射现在看起来还不错(在本文末尾有更多关于它的信息),但是当我启动应用程序时,我收到以下错误:

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"/>

...但它似乎没有做任何事情,我不知道在哪里进一步寻找。任何有绝妙想法或提示的人?

提前致谢!

以下是一些数据供引用:

在 web.config 文件中,我添加了 spring section group以及对 xml 定义文件的引用:
<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,但它没有做任何事情。

最佳答案

除了@Marijn 的帖子,根据您的配置,有时会出现异常 No persistence exception translators found in container.涵盖了真正的原因。附加到您的进程启动并捕获所有 spring.net 异常(Ctrl+Alt+E/CLR 异常)通常会揭示根本原因。

例如配置错误的 SessionFactory即使是正确的PersistenceExceptionTranslationPostProcessor已设置并注册到上下文。

我通常删除 Repository来自我的 DAO 的属性(通过 AOP 添加异常翻译并覆盖错误)以消除对 PersistenceExceptionTranslationPostProcessor 的需要导致出现潜在的错误。

另外你可以发布你的web.config的相关部分和 Persistence.xml .

关于.net - Spring.Net(& NHibernate?),缺少异常转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10900536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com