Я знаю, что этот вопрос ответил много раз с самым полезным ответом, как показано ниже,
Где разместить и как читать файлы ресурсов конфигурации в сервлет-приложении?
Однако у нас есть специальное требование, как показано ниже,
- Webapp будет развернут в tomcat.
- Обычное java-приложение в форме .jar будет помещено в папку /myapp
- Файл myappConfig.property будет помещен в /myapp
Структура каталога на клиентской машине
/myapp
/myapp.jar
/assests/myappConfig.property
/tomcat/webapps/myapp.war
В основном myapp.jar и myapp.war будут обращаться к значениям соединения sql db для подключения базы данных MySql и операций db.
Доступ к myappConfig.property из myapp.jar → Работает отлично
File jarPath = new File(Myapp.class.getProtectionDomain().getCodeSource().getLocation().getPath());
String propertiesPath = jarPath.getParent();
System.out.println(" propertiesPath-" + propertiesPath);
mainProperties.load(new FileInputStream(propertiesPath + "\\assets\\myapp.property"));
Может ли кто-нибудь помочь/предложить, как реализовать,
Доступ к файлу myappConfig.property из mywebapp,
при изменении времени выполнения в файле myappConfig.property не требуется перенаправление myapp.war
Спасибо за вашу помощь заранее.
изменить
Ниже приведены шаги, по которым мы хотим доставить проект клиенту.
-
Ниже приведен каталог приложений
/myapp /myapp.jar /assests/myappConfig.property /tomcat/webapps/myapp.war
-
упакуйте все в одном пакете с помощью некоторого инструмента для упаковки.
-
Запустите этот пакет на клиентской машине в любом месте и будет иметь такую же структуру каталогов, что и выше
-
Здесь я не хочу жестко кодировать любое местоположение в webapp или tomcat для "/assests/myappConfig.property"
-
Обычное приложение Java Я могу прочитать файл свойств, но для wepapp я не понимаю, как это сделать?