J'aimerais prendre un fichier XML de ma classe de classe pour lamairez-la et utilisez-la à des fins de test. Mon problème est de l'obtenir comme une intrigue. J'ai écrit ces lignes mais j'ai toujours un résultat nul.
ClassPathResource cpr = new ClassPathResource("xmlschemas/lrinode.xsd"); InputStream is = cpr.getInputStream();
3 Réponses :
Vous avez besoin d'une combinaison que vous n'avez pas essayé:
getClass().getResourceAsStream("/testing/"+ COMPLETE_DOCUMENT + ".xml");
Merci pour votre explication, le brouillard éteint maintenant. Malheureusement, ni la solution que vous suggérez de fonctionner dans mon projet. Je suppose que le répertoire "CLASSES" est dans la classe de classe car il est situé par la syntaxe "ClassePath:" Travailler pour le contexte de printemps, non? Euh ... ok, je l'avoue. Je ne suis pas sûr de ce qu'est un exaclty de classe de classe. Très embarrassant à dire. Je suppose que c'est tout ce que je peux voir de la racine de mon projet Eclipse dans l'explorateur de colis. Je sais que c'est une variable, mais je pense que Eclipse le gérerait automatiquement ...
@mavvamaldo: Assurez-vous que vous incluez la barre oblique sur le chemin. J'ai ajouté que quelques secondes après ma première réponse.
Par souci de complétude, il s'agit du fragment exact du code que j'ai essayé. Introuvable est = getclass (). Getresourceastream ("/ test /" + compled_document + ".xml");
Lorsque vous appelez classe.getresourceastream () code> avec nom de ressource sans barre oblique, il suppose que vous demandez des ressources relatives à un package en cours (c'est-à-dire le package de la classe de l'appelant). Pour en faire un chemin de ressource absolu, vous devez ajouter une barre oblique dirigée au nom de la ressource, par ex. Dans votre cas
"/ test /" + compled_document + ".xml" code> p>
printemps fournit une classe d'assistance nommée classePathresource
alors quelque chose comme: p> devrait fonctionner, espérons que cela aide! p> lien vers API DOC :
http://static.springsource.org/spring/ DOCS / 3.0.x / API / ORG / SpringFramework / CORE / IO / CLASSPATHRESOURCE.HTML P> Aussi L'utilisation de celle-ci à des fins de test peut vouloir filer un haricot mappé sur le XSD. p> peut vouloir regarder dans un marshallateur Jaxb P>
Merci, je m'intéresse à cette classe d'assistance. J'ai essayé votre solution, mais je reçois toujours "java.io.filenotfoundException: ressource de chemin de classe [test / exemple_commlete_document.xml] ne peut pas être ouvert car il n'existe pas" code> exception. Le nom de fichier est le nom réel au fichier de mon path. Ps. J'utilise déjà jaxb2 ^ __ ^
Quel est le chemin complet du document XML
Le document complet du document XML est le suivant: / VirtualResource2 / WebContent / Web-Inf / Classes / Test / Sample_ comple_document.xm l code>. Bien sûr, "VirtualResource2" est le nom de mon application Web.
Quel est le chemin avant de pouvoir compiler que j'aurais dû demander, si c'est sous le dossier Web-Inf avant de pouvoir compiler, il n'est pas visible pour la classe de classe
J'ai essayé de déplacer ma ressource XML à droite sur le côté de la classe d'invocation. Maintenant, ils sont des frères et sœurs mais je ne peux pas l'atteindre de toute façon. Il semble si bizarre. Je commence à demander à MySePF si mon projet n'est pas correctement configuré correctement. Par exemple, j'utilise Maven et j'ai fait une mise à jour de la configuration du projet (qui a changé de propriété de mon projet). Peut-il être en quelque sorte liée à mon problème?
Si vous utilisez Maven, placez-le dans SRC / Main / Ressources / Test.xml, il serait alors nouveau de classePathResource ("test.xml")
ok, il semble que nous avons une fin heureuse. Merci beaucoup! Enfin, le InputStream ne jette pas une exception FileNotFound! Il semble que mon problème est la configuration de mon projet Maven. Il y a des choses que je ne saisissent pas de toute façon. Si la structure du projet Maven est si stricte, pourquoi le printemps est en mesure de ressources de charge qui ne sont pas dans le principales ressources / code> dossier (essentiellement ma faute a été de penser: le printemps peut, alors pourquoi ne puis-je ?)? Je veux dire chargé par jaxb2 et les propriétés fichier chargé par le placeHolderConfigurer de Chema du xml.
Si vous parlez de MVC: les ressources pensent d'eux comme plus d'un servlet de servir des ressources statiques telles que des images.