2

EAR プロジェクトの .properties ファイルで問題が発生しました。svf や他の掲示板で、この問題に関するいくつかのトピックを既に確認しました。

EJB プロジェクトで Util のプロパティ ファイルを使用していますが、それらにアクセスできません。jboss-forum の投稿を参照して、EAR-Project および EarContent/lib/classes/ の META-INF の下にそれらを配置しようとしましたが、残念ながらうまくいきませんでした。私はまだこのエラーが発生します:

SEVERE: java.util.MissingResourceException: ベース名資格情報のバンドルが見つかりません。ロケール en_US は java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499) で java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322) にあります。 java.util.ResourceBundle.getBundle(ResourceBundle.java:724) で com.lumen.Utils.PropsUtil.loadProperties(PropsUtil.java:50) で

私は次の方法で props-file にアクセスしようとします: 行 50: ResourceBundle rb = ResourceBundle.getBundle("credentials");

私のプロジェクト構造は次のようになります。

->EarContent

-->ライブラリ

---> someexternallibs.jar

--->クラス

---->*.プロパティ

->META-INF

-->*.properties

-->application.xml

EJB

->src

-->package.package.Util <-- ここでプロパティをロードする必要があります

Web <-- ここでは、プロパティはまったく必要ありません

->src

->ウェブコンテンツ

追加情報: 私は開発に eclipse を使用しています。プロジェクトの残りの部分は今のところ問題なく動作しています。

あなたが私を助けてくれることを願っています:)

GreeZ ズセ

4

1 に答える 1

4

classesEAR 構造ではフォルダーを使用できません。

そのため、最初にリソースを jar ファイルにパックする必要があります。これは、既存のものか、lib フォルダー内の専用のものです。

単純なものを使用すると、クラスローダー階層に関して別の問題が発生します。

ResourceBundle.getBundle(String)

複数のクラスローダーが存在する場合にクラスローダー関連のメソッドを呼び出す正しい方法は、現在のコンテキストクラスローダーを次のように指定することです。

ResourceBundle.getBundle("bundlename",Locale.getDefault(),Thread.currentThread.().getContextClassLoader())
于 2012-12-01T21:18:10.903 に答える