0


Java で次のコードを使用して、Web アプリケーションにプロパティ ファイルをロードしようとしています。

InputStream in = ContextEventListener.class.getResourceAsStream(resourceConstVal);
Properties config = new Properties();
config.load(in);

このアプリケーションが tomcat サーバーで実行されている場合。プロパティ ファイルで指定されたすべてのプロパティは、システム変数としてエクスポートされ、次のコードを介してアクセスできます。

System.getProperty("TEMP")

`
ただし、同じアプリケーションが Jboss サーバーで実行された場合。プロパティは明示的にエクスポートする必要がありました

Set<Object> keySet = config.keySet();
for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
String strVal = (String) iterator.next();
System.setProperty(strVal, config.getProperty(strVal));
}


JDK 1.6、Tomcat 7.0、Jboss AS 6.1 を使用。

プロパティファイルの内容
CONTENT_DIR=XXXXXX
RESPONSE_FILE_NM=YYYYYYYY
REQUEST_INT_FILE_NM=ZZZZZZZ

異なるアプリケーション サーバーで動作が異なる理由を知りたい。

4

1 に答える 1

0

これは、Jboss が .properties ファイルをクラスパスの jar 内に配置し、デプロイ後に編集できないためです。ここに回避策があります https://developer.jboss.org/wiki/HowToPutAnExternalFileInTheClasspath

于 2015-09-29T15:49:39.723 に答える