Can’t find bundle for base name xxx, locale en_US

Problem

In JSF web application , load a message bundle in application level like this :
faces-config.xml


<?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>
	<message-bundle>
		com.mkyong.payment_error
	</message-bundle>
     </application>
</faces-config>

When the page is rendered, it hits “Can’t find bundle for base name com.mkyong.payment_error, locale en_US“?

Solution

Obviously, the bundle or properties file (com.mkyong.payment_error.properties) is missing, make sure the name is match and placed in the resource folder properly.

For Eclipse User
This problem is usually happened in the Eclipse IDE environment, where it doesn’t copy the “.properties” file extension by default. So, just make sure the properties file is existed in the run time “classes” folder and can be located by your web application.

About the Author

author image
mkyong
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Comments

Leave a Reply

avatar
newest oldest most voted
Sandip Gupta
Guest
Sandip Gupta

This fixed my issue, thanks for your help

matias
Guest
matias

Did fix this by putting the files under WEB-INF -folder.

demonz11b
Guest
demonz11b

very useful. thanks. shame on eclipse.

jsmile
Guest
jsmile

I have encounted a similar error.

“java.util.MissingResourceException: Can’t find bundle for base name javax.faces.Messages, locale en_US
….”

( environment )
jdk1.6.0_29
Apache Tomcat/7.0.22
eclipse-jee-indigo-SR1-win32

( WEB-INF\lib\faces-config.xml )

<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_1_2.xsd"
    version="1.2">
    
<application>
	<resource-bundle>
		<base-name>guessNumber.ApplicationMessages</base-name>
		<var>ErrMsg</var>
	</resource-bundle>
	<locale-config>
      <default-locale>en_US</default-locale>
    </locale-config>	
</application> 

( src\guessNumber\ApplicationMessages.properties )

What’s my problem ?

dimmid
Guest
dimmid

I get a java.util.MissingResourceException: Can’t find bundle for base name i18n.messages, locale sv … (that’s swedish)

I’m using Eclipse 3.6
The property file exists under the run time “classes” (as you mentioned)

When language is set to English in my browser the problem dissappears.

You have any idea? Cause I have been throwing hours and hours on this problem.

Óscar
Guest
Óscar

It’s obvious but I never see it. Thanks for the simple solution that sometimes they have to remind me