Strutsが「Form '/SampleForm' not found for locale 'ja_JP'」という警告ログを出しているのに気付いた


Strutsを利用しているシステムで、特定の画面の特定の処理を動かすと、以下のような警告がログに出力されていることに気付きました。

Form '/SampleForm' not found for locale 'ja_JP'
画面の動作には影響は無いみたいなんですが、なんか気持ち悪いので修正することにしました。

原因

struts-config.xmlvalidate="ture"として設定されているaction pathvalidation.xmlに定義されていない、またはアクション名が間違っていると出力される警告らしいです。

例えばstruts-config.xmlに以下のようなアクションが定義されていた場合

<action path="/SampleAction1" validate="true" ・・・</action>
<action path="/SampleAction2" validate="true" ・・・</action>
<action path="/SampleAction3" validate="true" ・・・</action>

validation.xmlが以下のような設定だと「SampleAction3」が動いたときにワーニングが発生します。
<form-validation>
  <formset>
    <form name="/SampleAction1">・・・処理・・・</form>
    <form name="/SampleAction2">・・・処理・・・</form>
  </formset>
</form-validation>

修正方法

validation.xmlにアクションを追加すればOK。(validation.xml側は定義さえあれば中身が空っぽでも良い)

【例】

<form-validation>
  <formset>
    <form name="/SampleAction1">・・・処理・・・</form>
    <form name="/SampleAction2">・・・処理・・・</form>
    <form name="/SampleAction3"></form>
  </formset>
</form-validation>

まとめ

画面数が増えてくると、こういう設定漏れが発生する確率も高くなっていきますね。

私の周りのJavaプログラマたちは警告を軽視する傾向にあるので、こういった"動けば良いや"的な症状がけっこう散見されます。

アプリの動きに影響無いから、と言って放置していると後々重大インシデントにつながる可能性もあるので、注意していきたいですね。

以上


<スポンサーリンク>


0 件のコメント :

コメントを投稿