dポイントプレゼントキャンペーン実施中!

SAStrutsのapplication_ja.properties

SAStrutsのapplication_ja.propertiesについて。
SAStrutsでアノテーションを使用したバリデートチェックで、
エラーの文言のプロパティ部分を日本語で表示するため、
src/main/resourcesのapplication_ja.propertiesに対して、
以下の形式でプロパティ名で定義して、

labels.(プロパティ名)=xxx

実行しているのですが、その設定内容が反映されません。

公式のチュートリアルの設定どおりで、実行しているのですが、
原因を調査しようとして、調べてみたところ、

編集したapplication_ja.propertiesが、
src/main/webapp/WEB-INF/classes配下に、
アップされていないことが分かりました。

HOT deployの機能で、application_ja.propertiesも
アップされると認識していたのですが、
どこか設定抜けがあるのでしょうか?

ちなみに、struts-config.xmlのmessage-resourcesタグ上には、
以下のように設定しています。

<message-resources parameter="application"
factory="org.seasar.struts.util.S2PropertyMessageResourcesFactory"/>

最悪、ファイル自体を手動でコピーしてしまえばいいのですが、
HOT deployで出来ないものかと思い質問させて頂きました。

よろしくお願いします。

A 回答 (3件)

こちらを参照


http://s2struts.seasar.org/ja/1.2/12xTo13x.html
一応代表サイトだしね。
ブックマークに入れておくといいわ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

Lieserlさんの回答No.2へのお礼に書いた
回避方法を実施した後に、
参照先の「S2StrutsのHOTdeploy対応」を見て、
そこに記述されている内容と同様な設定を行い、
Tomcatを起動したところ、
struts-config.xmlの配備する時点(コンソールログ上では、その次の行から)で
エラーが発生してしまいます。

エラー内容としては、
「deployするためのクラスの指定がない」的内容でした。
※すいません。エラーメッセージを拾う前に、
 設定を元に戻したため、エラーメッセージを正確に報告できません。

とりあえず、現状としては、
Lieserlさんの回答No.2へのお礼に書いた回避方法で、
避けておきます。

が、どうせ将来的に、また躓く部分だと思うため、
引き続き、調査していきます。

お礼日時:2010/03/09 19:39

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になっているか
再確認してみて下さい。
    • good
    • 0
この回答へのお礼

再度、回答ありがとうございます。

>src/main/webapp/WEB-INF/classesに配備される事を期待しているのであれば、
>追加したソースパスの出力先がsrc/main/webapp/WEB-INF/classesになっているか
>再確認してみて下さい。

ご指摘された部分を確認したところ、
やはり、期待している配備先にはなっていました。

また、ここで、見逃していた状況がありました。
application_ja.propertiesを更新した直後から、
プロジェクトエクスプローラー上の、
今、操作しているプロジェクトにエラーが発生していました。

エラー内容としては、

PC内部パス/application_ja.propertiesを削除できませんでした。
プロジェクトが不整合の可能性があるため、
問題を修正し、プロジェクトをリフレッシュしてからビルドしてください。

となっていたため、
Tomcatを停止し、クリーンビルドを行ったところ、
このエラーも解決されました。

その後、Tomcatを起動して動作確認を行ったところ、
目的どおりのエラーメッセージのフィールド名が日本語になりました。

ただ、気になるのは、
application_ja.propertiesを更新するたびに、
このエラーが発生し、クリーンビルドをしなければならない
という点です。

公式のメーリングリスト上も調べてみたところ、
チュートリアルのプロジェクトで、
同様な現象が起きている方々がいるようで、
上記方法で回避しているとのこと。

とりあえず、今のところは、上記方法で回避することにして、
更なる解決方法を探ってみようと思います。

お礼日時:2010/03/09 19:28

開発環境がわからないのですが、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

となっています。

補足日時:2010/03/09 00:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!