Я использую Spring mvc и tomcat как сервер. Я хочу, чтобы иметь возможность изменить JNDI поле, которое Autowired (как строка):Java - Tomcat: Reload context.xml без перезапуска сервера
<jee:jndi-lookup id="someMessage" jndi-name="someMessage"/>
в одном из моих услуг, на который ссылается на Conf/context.xml из Tomcat, который выглядит примерно так:
<Environment name="someMessage" value="Change this." type="java.lang.String" />.
Однако, когда я изменить значение на context.xml, это изменение не отражается на моей службе удалось весной, если я не перезапустить сервер. В любом случае, чтобы отразить это изменение без перезапуска или передислокации войны? Я знаю, что есть решение включить такое динамическое поле в один из файлов свойств, а затем использовать библиотеку конфигурации сообщества, чтобы перезагрузить изменения, но я ищу решение, чтобы сохранить это поле в моем conf/context.xml ...
Является ли ваш context.xml в META-INF в вашем webapp или в корне Tomcat? Если он находится в вашем webapp, вы можете установить перезагрузку - см. [Контекстные документы] (https://tomcat.apache.org/tomcat-8.0-doc/config/context.html) в поле «перезагружаемое» и взорванная WAR будет изменен. Но, как говорят документы, это довольно дорого. Вы также можете установить его на уровне виртуального хоста и перезагрузить только этот виртуальный хост/webapp. – stdunbar
Это на корне Tomcat. Перезагрузка - это дорогостоящий способ сделать это, хотя это решение. –