我正在使用一个依赖于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)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
Bal*_*usC 55
例外是告诉类路径的根目录中是a Bundle_en_US.properties
,或者Bundle_en.properties
至少Bundle.properties
是文件,但实际上没有.
确保至少有一个提到的文件存在于类路径的根目录中.或者,确保提供正确的包名称.例如,如果捆绑文件实际上已放置在包中com.example.i18n
,那么您需要com.example.i18n.Bundle
作为包名称而不是Bundle
.
如果您正在使用Eclipse"Dynamic Web Project",则类路径根由src
文件夹表示,您的所有Java包都在其中.如果您正在使用Maven项目,则资源文件的类路径根由文件src/main/resources
夹表示.
如果使用maven-tomcat-plugin
/ 启动项目maven-tomcat7-plugin
,则必须放置Bundle.properties
,甚至Resource.properties
放入src/main/webapp/WEB-INF/classes
.不要问为什么,它因为插件如何伪造一个tomcat.
小智 6
如果在Eclipse中运行.java文件,则需要在构建路径中添加资源路径。之后,您将不会看到此错误
我有同样的问题,并且balus解决方案修复了它.
作为记录:
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>
Run Code Online (Sandbox Code Playgroud)
并在WebContent\Resources下有Message.properties(在mkyong的教程之后)
即使我将包重命名为"Message_en_us"和"Message_en",也会出现令人讨厌的异常.把它移到src\working.
如果有人发布了丢失的部分以使捆绑在资源下工作,那将是一件美好的事情.
在我的情况下,问题是使用语言标签“en_US”Locale.forLanguageTag(..)
而不是“en-US” - 使用破折号而不是下划线!
也可以使用Locale.forLanguageTag("en-US")
代替new Locale("en_US")
或new Locale("en_US")
来定义具有区域(“美国”)的语言(“en”) - 但new Locale("en")
有效。
归档时间: |
|
查看次数: |
183113 次 |
最近记录: |