2

Spring Web Flow 2.0.7を使用していて、単体テストのセットアップを開始しました。クラスパスにflowxmlファイルとmessages.propertiesファイルを含むflowsディレクトリがあります。

正常に読み込まれていますが、フローのmessages.propertiesファイルが自動的に取得されていないようです。したがって、指定されたコードのメッセージを解決できないため、検証ユニットテストが失敗します。

例外の関連部分は次のとおりです。

org.springframework.context.NoSuchMessageException: No message found under code 'error_alnum_char_count_not_atleast' for locale 'en_US'.

これは、messages.propertiesで解決されたコードを使用してエラーメッセージを生成する、かなり一般的なシナリオのようです。それで...messages.propertiesファイルをロードするための推奨される方法は何ですか?

4

2 に答える 2

2

この質問の古さは知っていますが、解決策を見つけたので、他の人のために投稿したいと思いました:

Object obj = builderContext.getApplicationContext()
                .getBean(AbstractApplicationContext.MESSAGE_SOURCE_BEAN_NAME);
        obj = builderContext.getApplicationContext().getBean(AbstractApplicationContext.MESSAGE_SOURCE_BEAN_NAME);
        if (obj != null && obj instanceof StaticMessageSource) {
            StaticMessageSource messageSource = (StaticMessageSource) obj;
            messageSource.setUseCodeAsDefaultMessage(true);
        }

上記のコードを configureFlowBuilderContext メソッドに配置すると、すべてのメッセージがコード自体に解決されます。これはメッセージを正しく解決しませんが、リストした失敗を防ぎ、テストに合格できるようにします。

より良い方法があれば、それについて聞きたいと思います。これは実際には回避策にすぎないからです。

于 2011-11-21T09:18:15.750 に答える