Java 1.5、Java EE 5、WAS 6.1 : Exception loading a resource bundle with ResourceBundle. getBundle(...)

标签 java jakarta-ee websphere

这是我们在将应用程序从当前生产环境迁移到新数据中心环境时面临的另一个问题(请参阅下面的详细信息)

  • 当前生产环境: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. 将属性文件放入jar
  3. 在 EAR 级别移动 jar 文件。

请就此处可能出现的问题提出建议。我们可以做些什么来让它工作:)

注意: 文件 db.properties 位于 WEB-INF/classes 目录下。我们也尝试将其放在上述位置,但无济于事。

问候,
- 阿希什

最佳答案

尝试在您的耳鼻喉科设置中更改类加载器顺序。管理控制台中的应用程序(从 PARENT_FIRSTPARENT_LAST)在 EAR 和 WAR 级别。

在我看来,第 3 方类 (com.myco.wo.vs.util.OrderLovUtilities) 不是从 WEB-INF/lib 中的 jar 文件加载的,而是来自从服务器上的其他位置。然后它的类加载器看不到属性文件。

如果这是问题所在,更改类加载器顺序应该会导致加载类的预期副本。

此外,管理控制台中的类加载器查看器可以对此有所帮助。

关于Java 1.5、Java EE 5、WAS 6.1 : Exception loading a resource bundle with ResourceBundle. getBundle(...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/812802/

相关文章:

java - 如何在容器内调试 Java EE 应用程序?

java - 重新部署或安装期间无法在 webpshere 上启动应用程序

java - 使用 java programmig 读取 Ubuntu 14.04 鼠标事件文件 (/dev/input/event3) 时出错

java - 注释在运行时会产生任何影响吗?

validation - 在 Struts2 中,我无法将模型驱动与验证一起使用

jakarta-ee - 如何在 Java EE 中创建一个应用程序来监听 TCP/IP 套接字上的传入请求?

java - 如何使用增强的 for 循环打印数组

java - 如何在IntelliJ中进行Android单元测试?

java - JVM JIT 编译器如何优化 "duplicated"Java 代码?

websphere - wsadmin getStatsObject 未返回 JVMRuntime 的所有指标