- ベストアンサー
SAStrutsのapplication_ja.propertiesについての問題
- SAStrutsでアノテーションを使用したバリデートチェックで、エラーの文言のプロパティ部分を日本語で表示するため、src/main/resourcesのapplication_ja.propertiesに対して、プロパティ名で定義していますが、設定内容が反映されません。
- 編集したapplication_ja.propertiesが、src/main/webapp/WEB-INF/classes配下にアップされていないことが分かりました。HOT deployの機能でアップされるはずですが、設定抜けがある可能性があります。
- struts-config.xmlのmessage-resourcesタグには、factory="org.seasar.struts.util.S2PropertyMessageResourcesFactory"という設定がありますが、手動でファイルをコピーすれば解決するかもしれません。ただし、HOT deployで解決する方法を探しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こちらを参照 http://s2struts.seasar.org/ja/1.2/12xTo13x.html 一応代表サイトだしね。 ブックマークに入れておくといいわ。
その他の回答 (2)
- Lieserl
- ベストアンサー率81% (31/38)
SAStrutsは使ったことが無いのですが、 EclipseのDynamicWebProjectでしたら、 ソースディレクトリにsrc/main/resourcesを追加して、 出力先をbuild/classesにしておき、 プロジェクトの自動ビルドが有効になっていれば Eclipseが勝手にやってくれるはずです。 ただし、DynamicWebProjectの場合、webappディレクトリは workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps になります。 Eclipseがここにプロジェクト名のディレクトリを作成し、 その中にWebContent/配下をコピーし、 build/classesを、WEB-INF/classesにコピーします。 src/main/webapp/WEB-INF/classesに配備される事を期待しているのであれば、 追加したソースパスの出力先がsrc/main/webapp/WEB-INF/classesになっているか 再確認してみて下さい。
お礼
再度、回答ありがとうございます。 >src/main/webapp/WEB-INF/classesに配備される事を期待しているのであれば、 >追加したソースパスの出力先がsrc/main/webapp/WEB-INF/classesになっているか >再確認してみて下さい。 ご指摘された部分を確認したところ、 やはり、期待している配備先にはなっていました。 また、ここで、見逃していた状況がありました。 application_ja.propertiesを更新した直後から、 プロジェクトエクスプローラー上の、 今、操作しているプロジェクトにエラーが発生していました。 エラー内容としては、 PC内部パス/application_ja.propertiesを削除できませんでした。 プロジェクトが不整合の可能性があるため、 問題を修正し、プロジェクトをリフレッシュしてからビルドしてください。 となっていたため、 Tomcatを停止し、クリーンビルドを行ったところ、 このエラーも解決されました。 その後、Tomcatを起動して動作確認を行ったところ、 目的どおりのエラーメッセージのフィールド名が日本語になりました。 ただ、気になるのは、 application_ja.propertiesを更新するたびに、 このエラーが発生し、クリーンビルドをしなければならない という点です。 公式のメーリングリスト上も調べてみたところ、 チュートリアルのプロジェクトで、 同様な現象が起きている方々がいるようで、 上記方法で回避しているとのこと。 とりあえず、今のところは、上記方法で回避することにして、 更なる解決方法を探ってみようと思います。
- Lieserl
- ベストアンサー率81% (31/38)
開発環境がわからないのですが、eclipseであれば、 プロジェクトのプロパティから、 ビルドパスの、ソースディレクトリに src/main/resourceを追加してあげれば良いかと思います。
補足
回答ありがとうございます。 ご指摘を頂いたプロジェクトのプロパティにある ビルドパスのソースディレクトリを確認したのですが、 既に、src/main/resourceは設定済みでした。 また、気になったので、application_ja.propertiesではなく、 application.propertiesを編集して、 反映されるか見たところ、こちらも反映されていないようです。 もしかして、HOT deployに対して、 diconファイル以外に、propertiesも反映するような、 設定を施さなければいけないのでしょうか? すいません。 開発環境のことがスッカリ抜けていたようです。 本格的な開発を行っているわけではなく、 Seasar2のチュートリアルで使い方の学習している最中でした。 なので、環境としては以下のとおりです。 Eclipce3.4 sa-struts-tutorial-1.0.4-sp7 となっています。
お礼
回答ありがとうございます。 Lieserlさんの回答No.2へのお礼に書いた 回避方法を実施した後に、 参照先の「S2StrutsのHOTdeploy対応」を見て、 そこに記述されている内容と同様な設定を行い、 Tomcatを起動したところ、 struts-config.xmlの配備する時点(コンソールログ上では、その次の行から)で エラーが発生してしまいます。 エラー内容としては、 「deployするためのクラスの指定がない」的内容でした。 ※すいません。エラーメッセージを拾う前に、 設定を元に戻したため、エラーメッセージを正確に報告できません。 とりあえず、現状としては、 Lieserlさんの回答No.2へのお礼に書いた回避方法で、 避けておきます。 が、どうせ将来的に、また躓く部分だと思うため、 引き続き、調査していきます。