我在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
目录。
答案 0 :(得分:0)
我认为你需要一个默认属性:resources.properties
肯定这次你得到的是键而不是翻译,因为没有设置默认语言环境。
答案 1 :(得分:0)
如果是内存问题,我建议你这样做:
这是我个人的经历:
有时JVM(错误地)垃圾会在一段时间不使用时收集对象。我对JDK 4和oracle应用服务器9i也有同样的问题。当站点负载下降时,JVM垃圾收集了数据库连接。因此,开发一个小的jsp页面(test.jsp),添加<s:text name="menu.help" />
。然后,编写一个小应用程序,每1分钟请求一次该页面。