2

我在 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=Welcome to default.welcome.message=Hello, World!然后打开任何浏览器,看到 Hello, World!而不是欢迎

提前感谢您的帮助=')

4

2 回答 2

1

正如他们所说,一些大问题有一个非常简单的答案!根据我在资源编辑器工具中找到的帖子,我在操作中添加了此代码,并在 bootstarp 中进行了其他一些更改(请参阅答案末尾的链接):

def messageSource
def saveMessageResources={
    .
    .
    .
    //my action logic
    .
    .
    .    
    messageSource.clearCache()
}

它奏效了:)

参考资料:http: //jira.grails.org/browse/GPAPPENGINE-44

于 2012-10-01T13:25:08.630 回答
0

部署的应用程序在您重新启动之前不会获取更改。为方便起见,仅在开发模式下即时重新加载更改。之所以称为“热部署”,是因为仅应用了更改的部分(在您的情况下为messages.properties)。

如果您想在已部署的应用程序中编辑消息,您可以应用替代解决方案 -将您的消息保存在数据库中的本地化插件。

于 2012-10-01T10:22:09.067 回答