我將一個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