Java 1.5, Java EE 5 war 6.1: Exception ein Ressourcenbündel mit ResourceBundle.getBundle (...) Beladen

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

  •  03-07-2019
  •  | 
  •  

Frage

Hier ist eine andere Probleme, die wir konfrontiert sind, während unsere Anwendung von aktuellen Produktionsumgebung in die neue Datencenter-Umgebung migrieren (siehe Details unten)

  • Aktuelle Produktionsumgebung: Java 1.4, Java EE 3, 5,1, JSF 2.1
  • Neue Umgebung: Java 1.5, Java EE 5, WAS 6.1, JSF 2.1

Hier haben wir eine dritte Partei JAR-Datei mit folgendem Aufbau (das Bild überprüfen - verzeihen Sie mir einige Details versteckt)
alt text


Diese Klasse hat den Code, um die Datenbankeigenschaften aus einem Resource (db.properties) zu laden. Hier wird der Code gemacht, indem Cavaj:

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

Diese Anwendung funktioniert gut auf die aktuelle Umgebung. Aber irgendwie, wenn wir die Anwendung auf die neue Umgebung zu bewegen bekommen wir ein „Missing“ (siehe unten):

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)

Wir haben versuchen folgende Abhilfen aber keiner arbeitet:

  1. Umbenannt die db.properties als db_en_US.properties
  2. Setzen Sie die Eigenschaften in der JAR-Datei
  3. die JAR-Datei in EAR-Ebene bewegen.

Bitte legen nahe, auf das, was hier falsch sein könnte. Und was können wir es zum Laufen zu bringen tun:)

Hinweis: Datei db.properties wird unter dem WEB-INF / classes-Verzeichnis. Auch versuchte man es auf den oben genannten Stellen, aber ohne Erfolg setzen.

Grüße, - Ashish

War es hilfreich?

Lösung

Versuchen Classloader Bestellung in den Einstellungen Ihres ent zu ändern. Anwendung in der Admin-Konsole (von PARENT_FIRST PARENT_LAST) auf beiden EAR- und WAR-Ebenen.

Es scheint mir, dass 3rd-Party-Klasse (com.myco.wo.vs.util.OrderLovUtilities) nicht aus dem JAR-Datei in WEB-INF / lib geladen wird, aber es ist eher kommt von einem anderen Ort auf dem Server. Seine Klassenlader dann sehen nicht die Eigenschaftendatei.

Wenn das das Problem ist, die Bestellung der Classloader Ändern sollte die erwartete Kopie der Klasse führen zu laden.

Auch kann der Klassenlader-Viewer in der Admin-Konsole etwas Licht auf, dass setzen.

Andere Tipps

Haben Sie versucht, Ihre db.properties Datei unter WEB-INF / classes setzen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top