- - PR -
Strutsエラー; Cannot find message resources under key org.apache.struts.action.MESSAGE
| 投稿者 | 投稿内容 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-11-12 12:43
Strutsに関する質問です。
環境 Struts1.1 Tomcat5.0.12 Java2 SDK 1.4.1_02 Webアプリ内に、とあるJSPファイルを作成し、以下の2行目のほうを記述するとWebブラウザにエラーが表示されます。(1行目のみなら問題なし) <jsp:useBean id="MyBean" scope="request" class="foo.baa.MyBean"/> <bean:write name="MyBean" property="name"/> [exception] javax.servlet.ServletException: Cannot find message resources under key org.apache.struts.action.MESSAGE : : [root cause] javax.servlet.jsp.JspException: Cannot find message resources under key org.apache.struts.action.MESSAGE : : その後struts-blank.war より、 WEB-INF/classes/resources/application.properties をコピー、struts-config.xmlに、 <message-resources parameter="resources.application"/> を追加したところ、エラーは解消しました。 (それまでmessage-resources要素は何も定義していませんでした) 以上の現象に関し、エラーの発生した根本の原因と、エラーが解消した理由をお教えいただけないでしょうか。 よろしくお願いします。 _________________ | ||||||||||||||||||||||||||||
|
投稿日時: 2003-11-12 14:26
そのままですが、Strutsのbean:messageタグに必要なメッセージリソースファイルが無いということですね。
この対応で良いと思います。 まず、配置場所が
次に、message-resourceの設定でresources.applicationと指定しているということは、resourceというパッケージに入っているapplication.propertiesというファイルを検索する、という意味です。 bean:messageタグは、message-resourceで指定されたリソース(プロパティファイル等)に入っているメッセージを表示するためのStrutsタグライブラリです。 ちなみに、Webコンテナ(ここではTomcat5ですね)の起動時のロケールによって、読み出すファイルが微妙に変わります。ロケールがjaならresources_ja.propertiesが読み出されますし、ロケールがen_USならresource_en_US.propertiesが読み出されます。これにより、ロケールに対応したメッセージを表示するようなWebアプリが作れます。 読み出しの順序は、例えばロケールがja_JPなら STEP1: resource_ja_JP.propertiesを読み出す。無ければSTEP2へ STEP2: resource_ja.propertiesを読み出す。無ければSTEP3へ STEP3: resource.propertiesを読み出す。無ければエラー。 となります。 | ||||||||||||||||||||||||||||
|
投稿日時: 2003-11-12 15:41
おばけさん、ご回答どうもありがとうございます。
Java標準の動作と同様にして、Webアプリケーションも理解できるということですね。 ただ、1つ疑問が晴れないのは、
使用したのはbean:writeタグで、bean:messageタグは使用していないんですよ。 これら2つの間には何か関連があるのでしょうか? | ||||||||||||||||||||||||||||
|
投稿日時: 2003-11-12 15:54
こんにちは。
例外メッセージを元にどうしてStrutsのソースコードを 見ないのでしょうか? せっかくオープンソースなのですから。 ソースを見ることで新たな発見が見つかるかもしれませんよ。 ※もし、他人に問題を解決させ、その間に自分の仕事を したいということでしたら、この投稿は無視してください。 | ||||||||||||||||||||||||||||
|
投稿日時: 2003-11-12 16:23
見ますよ。 この掲示板で解決しなければ。
では、無視しないことにします。 まず初めに、私自身は文章の中に、「自分の代わりに調査して」という意味を込めたつもりは毛頭ございません。 ただし私の文章が私自身がそのような無責任な人間だと思わせる何かを他人に感じさせてしまったとしたら、私にも責任の一端はありますのでその旨ご指摘下さい。 ところで、そう言われてしまうと、この掲示板では何を質問することが許可されているのやらよく分からなくなってしまいますが、この掲示板には最近出入りするようになったばかりで私がここのルールというものを理解していないのかもしれません。 まあ、明示してあるルールには目を通しているつもりですが。 もしかしたら、ソースを見てからでないと質問してはならない、という暗黙のルールが存在します? あぁ、技術的なネタが何もない発言でごめんなさい。 あまりにも失礼な発言にあまりにも気分を害したもので・・・。 | ||||||||||||||||||||||||||||
|
投稿日時: 2003-11-12 17:08
こんにちは。
あなたはソースを見れば解決できるとわかっているのに 質問したということでしょうか? どうして、先にソースを見ないのでしょうか?
あなたが「自分の代わりに調査して」と思っていると 私が言ったでしょうか? でも、先の発言を見るといわゆる「おしえてクン」であると ご自身で認めたように思います。
私はあなたを怒らせるために投稿したわけではありません。 あなたがStrutsがオープンソースであることを知らないのではと思い、 問題解決方法を提示したつもりです。 最近では、様々なオープンソースなプロダクトを 組み合わせて開発を行うケースが多いため、 様々なエラー・問題が起こる可能性があるでしょう。 その場合の有効な問題解決方法の1つとして 公開されているソースを調べるというのがあると思います。 個々の問題を掲示板に投稿して解決するという方法もありますが、 ソースを調べた方がより早く問題解決する場合も多いでしょう。 でも、あなたはこの解決方法を知っていて、 あえて掲示板への投稿を選択したのですよね。 | ||||||||||||||||||||||||||||
|
投稿日時: 2003-11-12 18:30
横槍をさすような発言で申し訳ありません。
とまとさんのおっしゃりたい事はわかりますが、 >※もし、他人に問題を解決させ、その間に自分の仕事を >したいということでしたら、この投稿は無視してください。 これではカーニーさんに >「自分の代わりに調査して」 と、とられても仕方ないと思います。 私も、「他人に問題を解決させ、その間に自分の仕事をしたい」 = 「自分の代わりに調査して」と読めました。 また >私はあなたを怒らせるために投稿したわけではありません。 とのことでしたら、 >でも、先の発言を見るといわゆる「おしえてクン」であると >ご自身で認めたように思います。 このような発言をひかえたほうがよろしいかと思われます。 スレッドに意味を持たない意見をした事を謝罪します。 | ||||||||||||||||||||||||||||
|
投稿日時: 2003-11-12 19:02
こんばんは。
おっしゃるとおりです。 それはイコールです。 ただ、私はカーニーさんがそうであるとは言っていません。 もし、そう(おしえてクン)ならば、 私の言いたいこと ・ソースを見て調べると早く問題解決できる場合がある ・また色々なことを学べるチャンスである ・これは有効かつ応用が利く問題解決方法である は、おしえてクンにとっては 全く意味を持たない発言なので無視して下さい、 と言っただけです。 ※おしえてクンについてはここを参照してください
これをどう取るかはカーニーさん次第ではないでしょうか。 もし、私がカーニーさんの立場なら、 すぐにソースを調べて問題の原因を突き止め、投稿するでしょう。 ソースを見てわからなければ、それについて色々調べたり、 あるいはソースレベルで新たな質問をしたりするかもしれません。 気分は悪いのかもしれませんが、 より前向きに考えれば ソースで調べるという方法が非常に有効な方法であるということを 実感できるでしょう。 Strutsカスタムタグを使っていれば、色々な問題が起こります。 Strutsに関してユーザガイドや書籍には記述されていないようなことを 知りたい場合もあるでしょう。 その場合は「すべて」掲示板に投稿することが当たり前と 思っている人は、なかなか問題解決できないでしょう。 私はこれがカーニーさんにとって ご自身を改善するための良い機会になればと思っています。 余計なお世話かもしれませんが。。。 これについては本題である問題(Strutsカスタムタグ)の原因が わかるまで保留しましょう。 カーニーさんならご自身で解決されると思います。 | ||||||||||||||||||||||||||||
