我在tomcat 7上部署了Grails应用程序时遇到了一个非常烦人的问题
我在我的网站上创建了一个工具,它基本上允许网站管理员编辑message.properties文件,以便他可以根据需要更改某种语言的消息。
所有更改都会成功保存到他编辑的文件中。
在开发中,从STS运行网站(Soring Source Tools Suite;有些像eclips)我只是在浏览器中刷新网站,我立即看到更改,对message.properties文件所做的所有更改所选语言正确生效。
但是在部署的应用程序中(相同的代码同样配置没有错误)管理员做同样的事情,以与以前相同的方式编辑资源,message.properties文件正确保存新值,但是,我不看看浏览器中的变化,除非我重启tomcat,或者经过几个小时后!
我已禁用tomcat 7缓存,但我仍面临同样的问题。 我花了超过4天的谷歌搜索,但所有的结果都与我的问题无关,而且大多数都与hibernate缓存有关。
所以,我的问题只是如下:
我想转到我部署的grails应用程序中的message.properties文件,让我们说message_en.properties,更改让我们说default.welcome.message =欢迎来到default.welcome.message =你好,世界! 然后打开任何浏览器,看看Hello,World!而不是欢迎
提前感谢任何帮助=')
答案 0 :(得分:1)
正如他们所说,一些重大问题有一个非常简单的答案! 根据我发现的帖子,在我的资源编辑器工具中,我在我的操作中添加了此代码,其中包含bootstarp中的其他一些更改(请参阅答案末尾的链接):
def messageSource
def saveMessageResources={
.
.
.
//my action logic
.
.
.
messageSource.clearCache()
}
它有效:)
答案 1 :(得分:0)
在重新启动之前,已部署的应用程序不会进行更改。为方便起见,仅在开发模式下即时重新进行更改。它被称为“热部署”,因为只应用了更改的部分(在您的情况下为messages.properties)。
如果要在已部署的应用程序中编辑邮件,可以应用替代解决方案 - localisation plugin,将邮件保存在数据库中。