Прежде всего, я попытался выполнить мой код, извлекая файл войны (используя maven) как на eclipse, так и на tomcat 8.0.33, отдельно стоящий на моем mac.Загрузка ресурсов работает локально, но не на сервере
Я также пробовал свой код на сервере Windows 2008 с той же версией Java версии 1.8, и он работает, когда я помещаю некоторую переменную (которая является именем пользователя и паролем) жестко закодирована, но когда я делаю код для чтения из reousrce файл, он просто работает на моем Mac (как затмение и кот стоять в одиночку), но не на сервере
это код для чтения ресурса,
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;
}
где расположение configuration.properties
является в src/main/resources
и на сервере, я вижу, что файл находится в правильном каталоге.
Я использую Maven, я не знаю, что другая информация, которую вы должны мне помочь, но если вы говорите, я дам вам
Точно, нет оснований использовать файл здесь. Когда 'configuration.properties' включен в войну, вы не можете получить к ней доступ в виде файла. Причина, по которой он работает в вашей среде IDE, заключается в том, что вы можете получить к нему доступ в виде файла. https://issues.apache.org/jira/browse/SUREFIRE-855 связано с этим, теперь он позволяет вам тестировать с артефактом вместо класса, как «в производстве». –