2015-02-24 3 views
1

Как читать файл из местоположения на моем сервере?Чтение свойств файла с сервера

Я могу успешно читать/WEB_INF/классов с помощью:

InputStream systemParamInputStream = getClass().getClassLoader().getResourceAsStream("ldap.properties"); 

Однако, я хотел бы, чтобы этот файл где-то на сервере, так что он может быть настроен на поддержку людей, когда приложение переходит жить в производстве.

Мой профиль защиты server.xml живет здесь: C: \ eclipse \ runtime \ usr \ servers \ tmpServer. Это было бы хорошо, как и в любом другом месте.

ответ

1

"WEB-INF/классы" является частью вашего пути к классам.
Вы можете продолжать читать файлы так же, как и вы, добавив еще одну папку в путь к классу сервера. В этой папке у вас будут файлы конфигурации.

Но вы также можете получить доступ к файлу непосредственно, как это:

InputStream systemParamInputStream=new FileInputStream(filePath); 

Хитрость будет найти чистый способ настройки filePath файла конфигурации, как жестко прописывать не приятно. Это вариант:

new FileInputStream(System.getProperty("filePath","C:\\eclipse\\runtime\\usr\\servers\\tmpServer")); 

И вы бы отправить filePath в качестве параметра программы -DfilePath=c:\\

+1

Оказалось, что String configDir = System.getProperty ("server.config.dir"); возвращает местоположение сервера. ТКС. –

1

Я использую java.util.Properties:

Properties props = new Properties(); 
props.load(new FileReader("path to your file")); 
1

This thread показывает различные подходы к делать это.

Один я успешно попробовал это указать папку в качестве библиотеки в server.xml, так что он будет доступен в пути к классам:

<library id="configResources"> 
    <folder="${server.config.dir}/config" /> 
</library> 

<application location="foo.war"> 
    <classloader privateLibraryRef="configResources" /> 
</application> 

Два небольших предупреждения относительно этого подхода:

  1. Требуется 8.5.5
  2. Может привести к ошибке проверки подлинности server.xml в Eclipse из-за использования элемента folder (cvc-complex-type.2.4.a: Invalid content was found starting with element 'folder'. One of '{fileset}' is expected.). Вместо этого я попытался использовать fileset, но не смог заставить его работать.
Смежные вопросы