gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:01:22 25 4
gpt4 key购买 nike

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

  • 当前生产环境: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 forbase name db, locale en_USatjava.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:863)at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:832)at java.util.ResourceBundle.getBundle(ResourceBundle.java:576)atcom.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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com