Java 1.5, Java EE 5, WAS 6.1: исключение при загрузке пакета ресурсов с помощью ResourceBundle.getBundle (...) - PullRequest
2 голосов
/ 01 мая 2009

Вот еще одна проблема, с которой мы сталкиваемся при переносе нашего приложения из текущей производственной среды в новую среду центра обработки данных (подробности см. Ниже)

  • Текущая производственная среда: Java 1.4, Java EE 3, WAS 5.1, JSF 2.1
  • Новая среда: Java 1.5, Java EE 5, WAS 6.1, JSF 2.1

Здесь у нас есть сторонний jar-файл со следующей структурой (проверьте изображение - простите, что скрыл некоторые детали)
alt text


Этот класс имеет код для загрузки свойств базы данных из ResourceBundle (db.properties). Вот код, выданный Cavaj:

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

Это приложение отлично работает в текущей среде. Но почему-то, когда мы перемещаем приложение в новую среду, мы получаем «MissingResourceException» (см. Ниже):

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)

Мы пробовали следующие обходные пути, но ни один из них не работал:

  1. Переименовал db.properties в db_en_US.properties
  2. Помещение файла свойств в банку
  3. перемещение файла jar на уровне EAR.

Пожалуйста, подскажите, что здесь может быть не так. И что мы можем сделать, чтобы это заработало:)

Примечание: Файл db.properties находится в каталоге WEB-INF / classes. Также мы попытались поместить его в вышеупомянутые места, но безрезультатно.

С уважением,
- Ашиш

Ответы [ 2 ]

1 голос
/ 05 мая 2009

Попробуйте изменить порядок загрузки загрузчика в настройках вашего энта. приложение в консоли администратора (от PARENT_FIRST до PARENT_LAST) на уровнях EAR и WAR.

Мне кажется, что сторонний класс (com.myco.wo.vs.util.OrderLovUtilities) не загружается из вашего jar-файла в WEB-INF / lib, а скорее из другого места на сервере. Его загрузчик классов не видит файл свойств.

Если это проблема, изменение порядка загрузчика классов должно привести к загрузке ожидаемой копии класса.

Кроме того, средство просмотра загрузчика классов в консоли администратора может пролить свет на это.

0 голосов
/ 02 мая 2009

Вы пытались поместить файл db.properties в каталог WEB-INF / classes?

...