en que consiste el jfc de java
No se puede encontrar el paquete para nombre base/Bundle, locale en_US (8)
Estoy usando una biblioteca que tiene una dependencia en JSF.
Cuando trato de ejecutar mi proyecto, muestra el siguiente masaje de excepción.
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)
Algunas ideas ?
maven-tomcat-plugin
Si inicia el proyecto utilizando maven-tomcat-plugin
/ maven-tomcat7-plugin
, debe colocar Bundle.properties
, o incluso Resource.properties
en src/main/webapp/WEB-INF/classes
. No preguntes por qué, es porque el plugin simula un gato.
El problema debe ser que el atributo resource-bunde> base-name en el archivo faces-config.xml tiene una ruta diferente a sus propiedades. Esto me sucedió en el primer tutorial de Java EE, di un nombre de paquete diferente en la creación del proyecto y luego Glassfish no pudo encontrar la carpeta de propiedades que está en "firstcup.web".
Espero que ayude.
En mi caso, el problema fue utilizar la etiqueta de idioma " Locale.forLanguageTag(..)
" en Locale.forLanguageTag(..)
lugar de "en-US": ¡use un guión en lugar de subrayado!
También use Locale.forLanguageTag("en-US")
lugar de new Locale("en_US")
o new Locale("en_US")
para definir un idioma ("en") con una región ("EE. UU."), Pero new Locale("en")
funciona.
La excepción es que se Bundle_en_US.properties
que un Bundle_en_US.properties
, o Bundle_en.properties
, o al menos Bundle.properties
archivo Bundle.properties
se espere en la raíz del classpath, pero en realidad no existe ninguno.
Asegúrese de que al menos uno de los archivos mencionados esté presente en la raíz del classpath. O bien, asegúrese de proporcionar el nombre del paquete adecuado. Por ejemplo, si los archivos del paquete se han colocado realmente en el paquete com.example.i18n
, debe pasar com.example.i18n.Bundle
como nombre del Bundle
lugar de Bundle
.
En caso de que esté utilizando Eclipse "Dynamic Web Project", la raíz de classpath está representada por la carpeta src
, donde están todos sus paquetes Java. En caso de que esté utilizando un proyecto Maven, la raíz classpath para los archivos de recursos está representada por la carpeta src/main/resources
.
Ver también:
Si está ejecutando el archivo .java en Eclipse, debe agregar la ruta del recurso en la ruta de compilación. después de eso no verá este error
Tuve el mismo problema al usar Netbeans. Fui a la carpeta del proyecto y copié el archivo de propiedades. Creo que hizo clic en "compilar" y luego "clases". Agregué el archivo de propiedades en esa carpeta. Eso resolvió mi problema.
Tuve el mismo problema, y la solución de Balus lo solucionó.
Para el registro:
WEB-INF / faces-config es
<?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>
Y tenía Message.properties en WebContent / Resources (después del tutorial de mkyong)
la molesta excepción apareció incluso cuando cambié el nombre del paquete a "Message_en_us" y "Message_en". Moviéndolo a src / funcionó.
Si alguien publica la pieza faltante para hacer que los paquetes funcionen con recursos, sería algo hermoso.
Uso Eclipse (sin Maven) así que .properties
archivo .properties
en la carpeta src
que también contiene el código fuente de Java, para tener el archivo .properties
en la carpeta de classes
después de compilar el proyecto. Funciona bien. Eche un vistazo a esta publicación: https://www.mkyong.com/jsf2/cant-find-bundle-for-base-name-xxx-locale-en_us/
Espero que esto te ayude