Java 1.5, Java EE 5, WAS 6.1: Excepción al cargar un paquete de recursos con ResourceBundle.getBundle (...)

StackOverflow https://stackoverflow.com/questions/812802

  •  03-07-2019
  •  | 
  •  

Pregunta

Aquí hay otros problemas que enfrentamos al migrar nuestra aplicación del entorno de producción actual al nuevo entorno de centro de datos (consulte los detalles a continuación)

  • Entorno de producción actual: Java 1.4, Java EE 3, WAS 5.1, JSF 2.1
  • Nuevo entorno: Java 1.5, Java EE 5, WAS 6.1, JSF 2.1

Aquí tenemos un archivo jar de terceros con la siguiente estructura (verifique la imagen, perdóneme ocultando algunos detalles)
texto alternativo ??


Esta clase tiene el código para cargar las propiedades de la base de datos desde un ResourceBundle (db.properties). Aquí está el código representado por Cavaj:

    private static ResourceBundle getDBProperties()
    {
        if(dbProperties == null)
        {
            dbProperties = ResourceBundle.getBundle("db");
        }
        return dbProperties;
    }

Esta aplicación está funcionando bien en el entorno actual. Pero de alguna manera, cuando movemos la aplicación al nuevo entorno, obtenemos una " MissingResourceException " (ver más abajo):

Caused by: java.util.MissingResourceException: Can't find bundle for
base name db, locale en_US
at
java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:863)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:832)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:576)
at
com.myco.wo.vs.util.OrderLovUtilities.getDBProperties(OrderLovUtilities.java:195)

Probamos las siguientes soluciones pero ninguna funcionó:

  1. Cambió el nombre de db.properties como db_en_US.properties
  2. Poner el archivo de propiedades en el jar
  3. mover el archivo jar a nivel EAR.

Por favor sugiera sobre lo que podría estar mal aquí. ¿Y qué podemos hacer para que funcione :)

Nota: El archivo db.properties se encuentra en el directorio WEB-INF / classes. También intentamos ponerlo en los lugares mencionados anteriormente, pero sin éxito.

Saludos,
- Ashish

¿Fue útil?

Solución

Intente cambiar el orden del cargador de clases en la configuración de su ent. aplicación en la consola de administración (desde PARENT_FIRST a PARENT_LAST ) en los niveles EAR y WAR.

Me parece que la clase de terceros ( com.myco.wo.vs.util.OrderLovUtilities ) no se carga desde el archivo jar en WEB-INF / lib, sino que viene desde alguna otra ubicación en el servidor. Su cargador de clases no ve el archivo de propiedades.

Si ese es el problema, cambiar el orden del cargador de clases debería hacer que se cargue la copia esperada de la clase.

Además, el visor del cargador de clases en la consola de administración puede aclarar esto.

Otros consejos

¿Ha intentado colocar su archivo db.properties en el directorio WEB-INF / classes?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top