まず、私のコードでEclipseファイルとTomcat 8.0.33のスタンドアローンの両方でwarファイル(mavenを使用)を解凍してみました。リソースはローカルには動作しますがサーバ上には動作しません
同じJavaバージョン1.8のWindows Server 2008で自分のコードを試しましたが、これはハードコードされた変数をいくつか入れても動作しますが、これはリソース
configuration.properties
の場所がある
private static String getUsername() {
Properties prop = new Properties();
InputStream input = null;
try {
input = new FileInputStream(MyConfiguration.class.getClassLoader()
.getResource("configuration.properties").getFile());
// load a properties file
prop.load(input);
// get the property value and print it out
return prop.getProperty("username");
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
を読み込むためのコードであるreousrceファイル、それだけで(EclipseとTomcatの両方がスタンドアロン)でもMy Macに取り組んではなく、サーバー上の
src/main/resources
で、サーバー上で、私はそのファイルが正しいディレクトリにあることがわかります。私はMavenを使用しています
、私はあなたが私を助けるために必要な他のどのような情報を知りませんが、あなたが言うならば、私はあなたの戦争とアプリケーションが含まれているjarファイルを開き、あなたの
を見ることはできません。 'configuration.properties'が戦争の中にバンドルされているとき、それをFileとしてアクセスすることはできません。 IDEで動作するのは、引き続きファイルとしてアクセスできるからです。 https://issues.apache.org/jira/browse/SUREFIRE-855はこれに関連しています。これで、「生産中」のように、クラスフォルダではなく成果物でテストすることができます。 –