- PR -

Sun Java Application Server 8でのプロパティファイル読み込み

1
投稿者投稿内容
tarnwo
ベテラン
会議室デビュー日: 2002/10/25
投稿数: 58
投稿日時: 2005-08-03 15:30
いつもお世話になります。
どうしても解決できないため、ご教示いただければと思い投稿いたします。

ResourceBundleを用いてpropertiesファイルを読み込み
画面に表示するという単純なプログラムを作成しています。

Tomcat上で動作させた場合、propertiesファイルを書き換えると、
org.apache.catalina.core.StandardContext reloadにより、
最新のpropertiesファイルの内容に書き換わりますが、
Sun Java Application Server8では書き換わりません。

.reloadファイルを配置してタイムスタンプを変更しても
.classファイルはリロードされますが、propertiesファイルは反映されません。

ドメインの再起動をすると当然ですが新しい内容に変わります。

解決方法をご存知でしたらご教示願います。

・環境
WindowsXP + Tomcat5.5.9 ○
WindowsXP + SJAS 8 ×

以下ソース(単なるテストなのでエラー処理は入れていません)
---------
import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;
import java.util.ResourceBundle;
import java.util.prefs.InvalidPreferencesFormatException;
import java.util.prefs.Preferences;
/**
* @author work
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class ResourceBundleTest extends HttpServlet {

private final String PROPERTY_FILE = "messages";

public void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// ContentTypeを設定
response.setContentType("text/html; charset=Shift_JIS");
ResourceBundle rs =(ResourceBundle.getBundle(PROPERTY_FILE));


// 出力用PrintWriterを取得
PrintWriter out = response.getWriter();
// 出力
out.println("<html>");
out.println("<head>");
out.println("<title>Test</title>");
out.println("</head>");
out.println("<body>");
out.println(rs.getString("TEST1"));
out.println("<BR>");
out.println("</body>");
out.println("</html>");
out.flush();
rs = null;
out.close();
}

}

[ メッセージ編集済み 編集者: tarnwo 編集日時 2005-08-03 15:35 ]
tarnwo
ベテラン
会議室デビュー日: 2002/10/25
投稿数: 58
投稿日時: 2005-08-03 16:45
すいません、単純な読み込みだけなら.reloadでOKでした。

問題は
Struts+EJBで、.propertiesファイルが<ドメイン>/lib/classesにあり、
ResourceBundleを含むjarが<ドメイン>/lib/ にある場合です。
Webアプリケーションのルートディレクトリおよび
EJBのルートディレクトリすべての.reloadファイルに更新をかけましたが
変更されませんでした。

<ドメイン>/lib/ のjarで呼んでいれば変わらないですよね。
1

スキルアップ/キャリアアップ(JOB@IT)