Problème avec InputStream
Bonjour tout le monde,
J'ai un petit souci sur mon application JAVA.
J'utilise un fichier "messages.xml" pour afficher les différents messages de l'appli,
au début le fichier "messages.xml" été sur l'emplacement suivant "src/main/resources" et ça marche sans problème, après j'ai déplacé le fichier sous "messages/message.xml" au meme niveau que le dernier emplacement et c'est là ou j'ai trouvé le problème !!!
Erreur :
Code:
1 2 3 4 5
|
java.lang.ExceptionInInitializerError
Caused by: java.lang.IllegalArgumentException: InputStream cannot be null
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:120)
at com.activpremium.tools.Messages.getString(Messages.java:44) |
Le code que j'utilise :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
// private static String MESSAGES = "message.xml";
private static String MESSAGES = "messages/message.xml";
// La méthode permet à récupérer la valeur d'un mot clé définit sur le
// fichier des messages passé en paramétre
public static String getString(String key) {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
InputStream is = cl.getResourceAsStream(messageLangue);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
Document doc = null;
try {
dBuilder = dbFactory.newDocumentBuilder();
doc = dBuilder.parse(is);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("msg");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
// Appel à la méthode qui récupére la valeur d'un mot clé
return getTagValue(key, eElement);
}
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return key;
} |
j'ai raté quelque chose ??? :aie:
merci d'avance... :)