2010-11-09 4 views
1

Je ne peux pas accéder au fichier myXml.xml par le biais du MyStaticClass.java classe à partir de la structure de projet suivante.
Si je mets ce fichier xml quelque part sous dossier java je peux accéder par:Problème face à l'accès au fichier de ressources dans le projet maven

MyStaticClass.class.getResourceAsStream("[...]/myXml.xml"); 

mais ne peut pas accéder à partir du dossier des ressources, ni par chemin absolu (/myXml.xml) ni par chemin relatif à partir de dossier de l'application. Quelque chose de spécial avec le projet Maven ou je fais une erreur?
Aidez-moi à résoudre ce problème.

my-app 
`-- src 
    -- main 
     |-- java 
     | `-- com 
     |  `-- mycompany 
     |   `-- app 
     |    `-- App.java 
     |    `-- MyStaticClass.java 
     `-- resources 
      `-- myXml.xml 

Répondre

0

Vous appelez getResourceAsStream dans un test unitaire ou de l'exécution de votre application à partir de l'artefact (.jar probablement) produit après l'exécution de but de package? Sinon, myXml.xml ne sera pas sur votre chemin de classe. Si vous faites cela dans un test unitaire, alors myXml.xml doit être en src/test/resources et non src/main/resources.

+0

Non, Ne fonctionne pas en test unitaire. Plutôt en cours d'exécution directement à partir de la source pour le débogage – WSK

+0

Eh bien ... comment l'exécutez-vous dans Eclipse? Utilisez-vous le plugin m2 eclipse? Il me semble que les ressources ne sont pas incluses dans le chemin de la classe comme il se doit. Je ne connais pas assez éclipse pour savoir dans ce cas. Je sais que, grâce à l'empaquetage dans maven, myXml.xml finira dans la racine de votre .jar en supposant une structure de répertoire comme celle que vous avez déjà collée. – whaley

+0

Je cours à travers le lanceur d'éclipse. C'est comme si je cours le code octet compilé (non empaqueté dans le jar) sur l'invite de commande – WSK

Questions connexes