属性文件被卸载

时间:2013-03-13 17:52:51

标签: java struts2 internationalization

我在Windows Server 2008上的Tomcat 7上运行了一个Struts 2 Web应用程序(只有Tomcat,没有Apache或IIS)。应用程序中的文本存储在.properties文件中,由Struts 2 I18N Interceptor管理。在JSP中,我使用<s:text name="menu.help" />标签 有时(上个月两次),应用程序丢失对属性文件的引用,因为它们被卸载,并且它开始显示键。例如对于英语,它总是显示“帮助”,但是当我得到这个问题时,它开始显示“menu.help”。我必须重新启动应用程序才能正常工作。
我在日志中查找了相关错误,但找不到与I18n或属性相关的任何内容。我也找了OutOfMemoryError,但也找不到任何一个 你知道可能是什么问题吗?您能以任何方式思考我可以排除故障吗? 感谢

修改
这是我的struts.xml的相关部分:

<struts>
    <constant name="struts.custom.i18n.resources" value="resources" />
    ...

属性文件(resources_en.properties, resources_es.properties, ...)位于WEB-INF/classes目录。

2 个答案:

答案 0 :(得分:0)

我认为你需要一个默认属性:resources.properties

肯定这次你得到的是键而不是翻译,因为没有设置默认语言环境。

答案 1 :(得分:0)

如果是内存问题,我建议你这样做:

  1. 最小化属性文件的大小,看看这是否解决了问题。因此,首先要减小尺寸,进行负载测试并查看结果。
  2. 将其拆分为不同的属性文件,以查看是否所有这些文件都发生了,或者只是其中一些
  3. 这是我个人的经历:

    有时JVM(错误地)垃圾会在一段时间不使用时收集对象。我对JDK 4和oracle应用服务器9i也有同样的问题。当站点负载下降时,JVM垃圾收集了数据库连接。因此,开发一个小的jsp页面(test.jsp),添加<s:text name="menu.help" />。然后,编写一个小应用程序,每1分钟请求一次该页面。