Java 1.5, Java EE 5, WAS 6.1: Exception lors du chargement d'un ensemble de ressources avec ResourceBundle.getBundle (…)

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

  •  03-07-2019
  •  | 
  •  

Question

Voici un autre problème auquel nous sommes confrontés lors de la migration de notre application de l'environnement de production actuel vers le nouvel environnement de centre de données (voir les détails ci-dessous)

  • Environnement de production actuel: Java 1.4, Java EE 3, WAS 5.1, JSF 2.1
  • Nouvel environnement: Java 1.5, Java EE 5, WAS 6.1, JSF 2.1

Nous avons ici un fichier jar tiers avec la structure suivante (vérifiez l’image - pardonnez-moi en cachant quelques détails)

alt text


Cette classe contient le code permettant de charger les propriétés de la base de données à partir d'un ResourceBundle (db.properties). Voici le code rendu par Cavaj:

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

Cette application fonctionne correctement dans l'environnement actuel. Mais de toute façon, lorsque nous déplaçons l'application vers le nouvel environnement, un "MissingResourceException" apparaît. (voir ci-dessous):

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)

Nous avons essayé les solutions suivantes, mais aucune n'a fonctionné:

  1. a renommé le fichier db.properties en db_en_US.properties
  2. Mise du fichier de propriétés dans le pot
  3. déplacer le fichier jar au niveau de l'ERA.

Veuillez indiquer ce qui pourrait ne pas être correct ici Et que pouvons-nous faire pour que cela fonctionne:)

Remarque: le fichier db.properties se trouve dans le répertoire WEB-INF / classes. Nous avons également essayé de le placer sur les emplacements mentionnés ci-dessus, mais en vain.

Cordialement,
- Ashish

Était-ce utile?

La solution

Essayez de modifier l’ordre des chargeurs de classe dans les paramètres de votre ent. application dans la console d'administration (de PARENT_FIRST à PARENT_LAST ) aux niveaux EAR et WAR.

Il me semble que la classe tierce ( com.myco.wo.vs.util.OrderLovUtilities ) n'est pas chargée à partir de votre fichier jar dans WEB-INF / lib, mais qu'elle vient plutôt à partir d'un autre emplacement sur le serveur. Son chargeur de classe ne voit alors pas le fichier de propriétés.

Si tel est le problème, la modification de l'ordre du chargeur de classes devrait entraîner le chargement de la copie attendue de la classe.

De plus, le visualiseur de chargeur de classe dans la console d'administration peut vous éclairer.

Autres conseils

Avez-vous essayé de placer votre fichier db.properties dans le répertoire WEB-INF / classes?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top