50

JSF に依存するライブラリを使用しています。

プロジェクトを実行しようとすると、次の例外メッセージが表示されます..

java.util.MissingResourceException: Can't find bundle for base name /Bundle, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1250)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:705)

何か案は ?

4

13 に答える 13

66

例外は、クラスパスのルートにBundle_en_US.properties、またはBundle_en.properties、または少なくともBundle.propertiesファイルが期待されていることを示していますが、実際にはありません。

上記のファイルの少なくとも 1 つがクラスパスのルートに存在することを確認してください。または、適切なバンドル名を指定していることを確認してください。たとえば、バンドル ファイルが実際に package に配置されている場合、 の代わりにバンドル名としてcom.example.i18n渡す必要があります。com.example.i18n.BundleBundle

Eclipse の「動的 Web プロジェクト」を使用している場合、クラスパス ルートはフォルダーで表されsrc、そこにすべての Java パッケージが格納されます。Maven プロジェクトを使用している場合、リソース ファイルのクラスパス ルートはsrc/main/resourcesフォルダーで表されます。

以下も参照してください。

于 2012-10-20T12:41:38.683 に答える
12

maven-tomcat-プラグイン

maven-tomcat-plugin/を使用してプロジェクトを開始する場合は、 、または を に配置maven-tomcat7-pluginする必要があります。理由は聞かないでください。プラグインが tomcat を偽造する方法が原因です。Bundle.propertiesResource.propertiessrc/main/webapp/WEB-INF/classes

于 2014-02-02T15:49:02.587 に答える
8

If you are running the .java file in Eclipse you need to add the resource path in the build path . after that you will not see this error

于 2014-08-20T09:02:08.183 に答える
5

Locale.forLanguageTag(..)私の場合、問題は「en-US」の代わりに「en_US」という言語タグを使用していたことでした-下線の代わりにダッシュを使用してください!

またはLocale.forLanguageTag("en-US")の代わりに、地域 (「US」) で言語 (「en」) を定義するためにも使用しますが、機能します。new Locale("en_US")new Locale("en_US")new Locale("en")

于 2018-02-10T23:52:36.517 に答える
4

私は同じ問題を抱えていましたが、バルスソリューションで修正されました。

記録のために:

WEB-INF\faces-config は

<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
    <application>
        <locale-config>
            <default-locale>en</default-locale>
        </locale-config>
        <message-bundle>
            Message
        </message-bundle>
    </application>
</faces-config>

WebContent\Resources の下に Message.properties がありました (mkyong のチュートリアルの後)。

バンドルの名前を「Message_en_us」および「Message_en」に変更しても、厄介な例外が発生しました。src\ に移動するとうまくいきました。

誰かが不足している部分を投稿して、リソースの下でバンドルを機能させるとしたら、それは素晴らしいことです。

于 2012-12-18T22:26:02.993 に答える