java - property - El archivo de propiedades se descarga
manejo de archivos properties en java (2)
Creo que necesitas propiedades predeterminadas: resources.properties
Por supuesto, esta vez obtiene claves en lugar de traducciones porque la configuración regional predeterminada no está configurada.
Tengo una aplicación web Struts 2 ejecutándose en Tomcat 7
en Windows Server 2008 (solo Tomcat, sin Apache o IIS). Los textos en la aplicación se almacenan en archivos .properties y son administrados por Struts 2 I18N Interceptor. En los JSP utilizo etiquetas <s:text name="menu.help" />
.
Algunas veces (dos veces en el último mes), la aplicación pierde las referencias a los archivos de propiedades, ya que se descargaron, y comienza a mostrar las teclas en su lugar. Por ejemplo, para inglés, siempre muestra "Ayuda", pero cuando aparece este problema, comienza a mostrar "menu.help". Tengo que reiniciar la aplicación para que funcione normalmente otra vez.
Busqué errores relacionados en los registros, pero no pude encontrar nada relacionado con I18n o propiedades. También busqué OutOfMemoryError
, pero tampoco pude encontrar ninguno.
¿Sabes cuál podría ser el problema? ¿Puedes pensar de alguna manera que pueda solucionarlo?
Gracias
Editar:
Esta es la parte relevante de mi struts.xml:
<struts>
<constant name="struts.custom.i18n.resources" value="resources" />
...
Y los archivos de propiedades (resources_en.properties, resources_es.properties, ...)
se encuentran en el directorio WEB-INF/classes
.
Si es un problema de memoria, te sugiero que lo hagas a continuación:
- Minimice el tamaño del archivo de propiedades, vea si esto resuelve el problema. Entonces primero minimice el tamaño, haga una prueba de carga y vea el resultado.
- Dividirlo en diferentes archivos de propiedades para ver si esto les sucede a todos ellos o solo a algunos de ellos
Esta es mi experiencia personal:
A veces, la basura JVM (por error) recoge un objeto cuando no se usa por un tiempo. Tengo el mismo problema con JDK 4 y el servidor de aplicaciones Oracle 9i. La basura de JVM recopiló la conexión de la base de datos cuando se redujo la carga del sitio. Entonces, desarrolle una pequeña página jsp (test.jsp), agregue <s:text name="menu.help" />
a ella. Luego, escriba una pequeña aplicación que solicite esta página cada 1 minuto.