【发布时间】:2016-01-28 17:08:03
【问题描述】:
我使用 spring mvc 和 tomcat 作为服务器。我希望能够更改自动装配的 jndi 字段(作为字符串):
<jee:jndi-lookup id="someMessage" jndi-name="someMessage"/>
在我的一项服务中,它引用了 Tomcat 的 conf/context.xml,看起来像这样:
<Environment name="someMessage" value="Change this." type="java.lang.String" />.
但是,当我更改 context.xml 上的值时,此更改不会反映在我由 spring 管理的服务上,除非我重新启动服务器。有没有办法在不重启或重新部署战争的情况下反映这种变化?我知道有一种解决方案可以在一个属性文件中包含这样一个动态字段,然后使用公共配置库重新加载更改,但我正在寻找一种解决方案来将此字段保留在我的 conf/context.xml 中...
【问题讨论】:
-
你的 context.xml 是在 webapp 的 META-INF 中还是在 Tomcat 的根目录中?如果它在您的 web 应用程序中,您可以设置可重新加载 - 请参阅“可重新加载”字段下的 the context docs,并且将轮询分解的 WAR 以进行更改。但是,正如文档所说,这非常昂贵。您还可以在虚拟主机级别设置它并仅重新加载该虚拟主机/webapp。
-
它在Tomcat的根目录上。重新加载它似乎是一种昂贵的方法,即使它是一个解决方案。
标签: java spring tomcat jndi context.xml