gpt4 book ai didi

java - 由于类加载器配置而导致 MissingResourceException(调用者不在 WEB-INF/classes 中)

转载 作者:行者123 更新时间:2023-12-02 00:32:51 25 4
gpt4 key购买 nike

访问资源包时出现 MissingResourceException。由于我的特定类加载器配置而出现问题。

我正在尝试从驻留在 JBOSS_HOME/server/myServer/myDeployDir/myEAR/myJAR.jar 下的类中读取 text.properties (注意:调用类不在 WEB-INF/classes 中)。 text.properties 文件位于 JBOSS_HOME/server/myServer/myDeployDir/myEAR/myWAR/WEB-INF/classes。

运行以下代码时:

Locale locale = new Locale ("de", "DE");
ResourceBundle rb = ResourceBundle.getBundle(textproperties, locale);

我得到以下内容

java.util.MissingResourceException: Can't find bundle for base name text, locale de_DE.

不幸的是,我不能改变我的应用程序的结构。我既不能将调用者类(现在位于 myJAR.jar 中)移动到 WEB-INF/classes,也不能将属性文件打包到 myJAR.jar 中。有没有办法从 WEB-INF/classes 外部访问属性文件?

该应用程序在 JBOSS 4.2.3 上运行,因此我想我必须牢记 Web 服务器线程处理。

感谢您提前提供的帮助,贡纳尔

最佳答案

您可以指定类加载器用作 getBundle 的附加参数。在 Web 应用程序中,这很可能是当前线程的上下文类加载器:

ClassLoader cl = Thread.currentThread().getContextClassLoader();
ResourceBundle rb = ResourceBundle.getBundle(textproperties, locale, cl);

关于java - 由于类加载器配置而导致 MissingResourceException(调用者不在 WEB-INF/classes 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8560145/

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