Je rencontre de sérieuses difficultés pour charger une ressource dans un ensemble dans mon application. Cela fait des heures que je suis là et je ne sais vraiment pas ce que je fais de mal.MissingResourceException pour Resource dans Classpath
J'ai une application Java où j'essaie d'appliquer l'internationalisation à ma journalisation. Tout fonctionne correctement dans Eclipse, c'est uniquement lorsque je tente de déployer les fichiers jar compilés dans l'environnement de test que le fichier de propriétés ne peut pas être localisé. Mon fichier de propriétés s'appelle logging_en.properties. J'ai vérifié que c'est sur le système de fichiers (Linux, soit dit en passant). Quand je lance mon application, j'exécutez la commande suivante:
$JAVA_HOME/bin/java -verbose:gc -Xloggc:/var/tmp/app_gc.log -Xms1000m -Xms1000m -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:NewRatio=3 -classpath $CLASSPATH -Djava.rmi.server.codebase=file:///data/dev/app/common/ext/dirmi-1.1.1.jar -Djava.awt.headless=true -Dcom.sun.management.jmxremote.port=xxx -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false $JAVA_SECURITY $IMPORT_PROPERTIES $APP_PROPERTIES app.serverimpl.ServerStarter
Ma variable CLASSPATH est:
/data/dev/app/server/logging_en.properties:/data/dev/app/common/lib/common.jar:/data/dev/app/common/ext/dirmi-1.1.1.jar:/data/dev/app/common/ext/log4j-1.2.17.jar:/data/dev/app/common/ext/cojen-2.2.3.jar:/data/dev/app/common/lib/server.jar
Le fichier de propriétés est dans mon classpath. Dans le code lui-même, la ligne exacte que je lance est le suivant:
LogManager.getLogger("server").setResourceBundle(java.util.ResourceBundle.getBundle("logging"));
Au début lorsque le serveur démarre, je reçois toujours l'exception des ressources manquant:
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name logging, locale en_US
Juste pour être sûr, je Je suis allé jusqu'à copier le fichier dans logging.properties et logging_en_US.properties et ajouté les trois à mon classpath. Toujours le même problème. Je sais que je suis en train de faire quelque chose de stupide ou de manquer quelque chose d'évident, mais je suis vraiment perdue. Je préférerais ne pas regrouper le fichier dans mon pot afin qu'il puisse être modifié à la volée, donc j'espère que c'est possible de le faire depuis le classpath.
C'était exactement ça. Tout fonctionne bien maintenant. Je pourrais me frapper pour avoir raté ça. Merci beaucoup! –