Openshift this.getClass (). GetResource () путь, вероятно, не правильный

1

Я пытаюсь развернуть свое приложение в openshift, и у меня возникла проблема с его запуском. Приложение развертывается локально в точно такой же версии JBoss (JBoss AS 7.1.1 Final), и оно работает, пока оно не работает при развертывании в openshift. Я не использую масштабирование.

Проблема заключается в примере кода:

  String s= SimpleClass.class.getResource("/myproperties.properties").getPath();
  prop.load(new FileInputStream(s));

При развертывании локально в JBoss AS он работает, как и ожидалось. Однако, когда я развертываю его в экземпляре openshift, возникает исключение:

java.io.FileNotFoundException: /content/Mailinglist.war/WEB-INF/classes/myproperties.properties (No such file or directory)
java.io.FileInputStream.open(Native Method)
java.io.FileInputStream.<init>(FileInputStream.java:146)
java.io.FileInputStream.<init>(FileInputStream.java:101)
mailinglistonline.server.export.util.PropertiesParser.parseDatabaseConfigurationFile(PropertiesParser.java:15)

РЕДАКТИРОВАТЬ:

Mailinglist.war/WEB-INF/classes/myproperties.properties является правильным и тем же, что и у меня локально, однако префикс /content довольно странный, поскольку, вероятно, каталог no/content существует в openshift. Вероятно, этот путь должен идти к экземпляру JBoss, который развернул этот.war. Вопрос в основном заключается в том, почему создается такой путь/префикс, и если я могу как-то заставить его работать.

  • 0
    Вы /content/Mailinglist.war/WEB-INF/classes/myproperties.properties , существует ли путь - /content/Mailinglist.war/WEB-INF/classes/myproperties.properties ?
  • 0
    Я сомневаюсь, что это существует. (cd / content => Такой файл или каталог не существует) Mailinglist.war/WEB-INF/classes/myproperties.properties является правильным и таким же, как у меня локально, однако префикс /content довольно странный. Вопрос главным образом в том, почему генерируется такой путь / префикс, и если я могу каким-то образом заставить его работать. Я предоставлю эту информацию на вопрос
Показать ещё 4 комментария
Теги:
openshift
jboss7.x

1 ответ

2

Вместо использования Class.getResource() вы должны использовать Class.getResourceAsStream() и загружать свои свойства таким образом. Использование пути ресурса будет работать только в том случае, если вы разворачиваете свою ВОИС взорван. Я не считаю, что развертывание взорвалось на OpenShift.

Что-то вроде следующего было бы лучшим способом справиться с этим.

Properties props = new Properties();
props.load(SimpleClass.class.getResourceAsStream("/myproperties.properties"));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню