2013-03-13 1 views
4

Windows Server 2008의 Tomcat 7 (Tomcat, Apache 또는 IIS 만)에서 실행중인 Struts 2 웹 응용 프로그램이 있습니다. 애플리케이션의 텍스트는 .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 디렉토리에있는 파일. resources.properties Surelly

은 기본 로케일이 설정되어 있지 않기 때문에 대신 번역의 키가 얻을이 시간 :

+1

Struts User 메일 링리스트에 게시 할 수 있습니다. 쓰레기 수거는 의심 스럽지만 무슨 일인지 확신 할 수 없습니다. –

+0

문제를 해결하기 위해 무엇을 시도 했습니까? 로케일을 수동으로 전환하려고 시도 했습니까? –

+0

@RomanC 응용 프로그램 내에서 언어를 전환 할 가능성이 있으며 응용 프로그램을 다시 시작하기 전까지는 언어에 관계없이 작동하지 않습니다. –

답변

0

나는 당신이 기본 속성을 필요가 있다고 생각합니다. 이 메모리 문제가있는 경우

0

, 당신이 아래에 이렇게 제안 :

  1. 하면이 문제를 해결할 수 있는지, 특성 파일의 크기를 최소화합니다. 따라서 먼저 크기를 최소화하고 부하 테스트를하고 결과를 확인하십시오. 개체를 수집 때때로

    는 JVM (실수로) 쓰레기 :이 그들 모두 또는 그 중 단지 일부에

이건 내 개인적인 경험입니다 발생할 경우 다른 속성 파일에

  • 분할 그것을 확인합니다 잠시 사용하지 않을 때. JDK 4와 Oracle Application Server 9i에서 동일한 문제가 있습니다. JVM 가비지는 사이트로드가 떨어졌을 때 데이터베이스 연결을 수집했습니다. 따라서 작은 JSP 페이지 (test.jsp)를 개발하고 <s:text name="menu.help" />을 추가하십시오. 그런 다음 1 분마다이 페이지를 요청하는 작은 응용 프로그램을 작성하십시오.