Spring.Net と NHibernate で動作する ASP.NET Webform アプリケーションを ASP.NET MVC3 に移植しています。新しいプロジェクトを作成し、Spring.Net が同じソリューション内の複数のプロジェクトに適切に依存関係を挿入できることを確認した後、新しいソリューション内のサービスおよび永続層プロジェクトのインポートに進みました。
マッピングは多少問題ないように見えますが (この記事の最後で詳しく説明します)、アプリケーションを起動すると、次のエラーが表示されます。
コンテナに持続性例外トランスレータが見つかりません。例外変換を実行できません。
[ConfigurationErrorsException: コンテキスト 'spring.root' の作成中にエラーが発生しました: コンテナーに持続性例外トランスレーターが見つかりません。例外変換を実行できません。]
私がこれをよく理解していれば、それは例外が発生し、Spring.Net がそれをマップ/処理する方法を知らないことを意味します.それは正しいですか?
NHibernate からのものであると仮定し、 NHibernate 統合に関連するSpringFramework ドキュメントのセクション 44.3.3 で説明されているように、マッピングに 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にも追加しようとしましたが、何もしませんでした。