Spring 3 でカスタム型コンバーターを作成する方法に関するドキュメントを見つけましたが、それを使用できるように Grails にコンバーターを登録する例が見つかりませんbindData
。
この構成を conf/spring/resources.groovy ファイルに追加してみました:
conversionService(org.springframework.context.support.ConversionServiceFactoryBean) {
converters {
com.initech.reports.tps.StringToFooConverter
}
}
コンバーターを追加するとすぐに、起動時に次のようなスタックトレースが取得されるため、これは何かを踏むことになります。
2012-06-21 10:09:50,614 [メイン] エラー context.GrailsContextLoader - ブートストラップの実行エラー: 名前 'FooApprovers' の Bean 作成エラー: タイプ [org.springframework.xml. xsd.commons.CommonsXsdSchemaCollection] Bean プロパティ 'schemaCollection' の設定中。ネストされた例外は org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#7': Initialization of bean failed; ネストされた例外は org.springframework.beans.TypeMismatchException です: タイプ 'java.lang.String[]' のプロパティ値をプロパティ 'xsds' の必要なタイプ 'org.springframework.core.io.Resource[]' に変換できませんでした。ネストされた例外は org.springframework.core.convert.ConversionFailedException: 値「{/WEB-INF/ws/FooApproversService.xsd}」をタイプ「java.lang.String[]」からタイプ「org.springframework.core.io.Resource[]」に変換できません。ネストされた例外は org.springframework.core.convert.ConverterNotFoundException: 'java.lang.String' から 'org.springframework.core.io.Resource' に変換できるコンバーターが見つかりません org.springframework.beans.factory.BeanCreationException: エラー名前 'FooApprovers' の Bean を作成しています: Bean プロパティ 'schemaCollection' の設定中に、タイプ [org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection] の内部 Bean '(内部 Bean)' を作成できません。ネストされた例外は org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#7': Initialization of bean failed; ネストされた例外は org.springframework.beans.TypeMismatchException です: タイプ 'java.lang.String[]' のプロパティ値をプロパティ 'xsds' の必要なタイプ 'org.springframework.core.io.Resource[]' に変換できませんでした。ネストされた例外は org.springframework.core.convert.ConversionFailedException: Unable to convert value "{/WEB-INF/ws/FooApproversService.xsd}" from type 'java.lang.String[]' to type 'org.springframework.core .io.Resource[]'; ネストされた例外は org.springframework.core.convert.ConverterNotFoundException: org.grails.tomcat.TomcatServer.start( で 'java.lang.String' から 'org.springframework.core.io.Resource' に変換できるコンバーターが見つかりません) TomcatServer.groovy:212) を grails.web.container.EmbeddableServer$start に配置します。
Grails 1.3.7 (Spring 3.0.5 を含む) を使用しています。
明らかに、型コンバーターが追加されている他の方法がいくつかあり、変換サービスを明示的に構成することでそれを台無しにしましたか? 他のコンバーターを踏まずにカスタム型コンバーターを登録する方法はありますか?