В чем отличие установки свойства в файле catalina.bat по сравнению с файлом setenv.bat - PullRequest
0 голосов
/ 30 октября 2018

Я хотел установить файл application.properties вне файла war при развертывании на tomcat, и вот мое наблюдение

1. Когда я устанавливал свойство jvm как

spring.config.location=C:/Users/user_name/Documents/Softwares/apache-tomcat-8.0.53-windows-x64/apache-tomcat-8.0.53/webapps/config/ 

в файле catalina.properties .. он не был понят tomcat и выдал ошибку времени выполнения при чтении одного свойства местоположения, определенного в файле application.properties (в основном, оно не может разрешить местоположение)

но когда я устанавливаю профиль как показано ниже

spring.profiles.active=dev

и профиль был выбран правильно.

Итак, в чем заключается большая разница в настройке этих двух свойств. также я считаю, что это свойства jvm, которые весенняя загрузка принимает в качестве свойств среды во время выполнения. я прав здесь?

2. , когда я устанавливаю тот же spring.config.location в новый файл с именем setenv.sh, как показано ниже

set JAVA_OPTS=-Dspring.config.location=C:/Users/user_name/Documents/Softwares/apache-tomcat-8.0.53-windows-x64/apache-tomcat-8.0.53/webapps/config/

означает, что свойство устанавливается как системная переменная java, на этот раз приложение весенней загрузки подобрало его правильно.

Итак, в чем заключается большая разница в установке свойства через файл catalina.properties, чем в файл setenv.bat.

Пожалуйста, просветите.

1 Ответ

0 голосов
/ 02 ноября 2018
  1. Файл свойств не является текстовым файлом. У него свой синтаксис. См. Javadoc класса java.util.Properties [1] [2] для справки.

    например. ':' экранируется как ':', '\' экранируется как '\'.

    (Экранирование ':' важно в ключе свойства. Я не уверен, что оно требуется в значении. Возможно, у вас есть другие ошибки в вашем значении.)

    Вы можете настроить org.apache.catalina.startup.VersionLoggerListenerserver.xml) для регистрации фактических значений свойств системы, которые видны Tomcat и вашими веб-приложениями. Атрибут logProps="true" [3] .

  2. setenv.sh или setenv.bat генерирует параметры для командной строки Java-программы.

    Файл catalina.properties обрабатывается процессом начальной загрузки Tomcat. Это происходит довольно рано (до построения иерархии загрузчиков классов Tomcat), но для некоторых свойств эта разница во времени важна.

    Например, свойства, которые настраивают java.util.logging API ведения журнала, должны быть настроены в setenv.sh, а не в файле catalina.properties.

...