Ne peut pas ouvrir beans.xml (fichier de configuration), car il n'existe pas
Exception in thread "main"
org.springframework.les haricots.usine.BeanDefinitionStoreException:
IOException l'analyse du document XML à partir de la classe de chemin de ressources
[com/main/beans.xml]; nested exception est
java.io.FileNotFoundException: le chemin de classe de ressource
[com/main/beans.xml] ne peut pas être ouvert car il n'existe pas
ApplicationContext context =
new ClassPathXmlApplicationContext("com/main/beans.xml");
J'ai essayé avant avec
ApplicationContext context =
new FileSystemXmlApplicationContext("src/main/java/com/main/beans.xml");
Et il fonctionne bien.
Comment faire par rapport à la variable classpath?
Remarque: classpath est dans le build path
Dans l'exemple que je suis, il a la structure suivante et il fonctionne
Structure de projet
Classpath
ApplicationContext context =
new ClassPathXmlApplicationContext("com/caveofprogramming/spring/test/beans/beans.xml");
xml les fichiers doivent être dans
voir mon mise à JOUR ci-dessous
merci -- utile! Mais pourquoi il a travaillé dans l'exemple? Semble que l'auteur n'a pas à faire un travail supplémentaire
Il peut travailler au sein d'eclipse (comme qui aspire à l'informatique le chemin de la classe, surtout avec des projets Maven), lors de la construction de la jarre/de la guerre, il ne sera pas à cet endroit.
Vous garder beans.xml dans le classpath ou src/main/...pkg où java fichier sont enregistrées. Et puis utiliser ClassPathXmlApplicationCOntext
src/main/resources
pas en java. Lors de la compilation avec maven les fichiers xml sont ignorées si elles ne sont pas dans les ressources (Sauf si vous faites un peu de travail supplémentaire à rajouter).voir mon mise à JOUR ci-dessous
merci -- utile! Mais pourquoi il a travaillé dans l'exemple? Semble que l'auteur n'a pas à faire un travail supplémentaire
Il peut travailler au sein d'eclipse (comme qui aspire à l'informatique le chemin de la classe, surtout avec des projets Maven), lors de la construction de la jarre/de la guerre, il ne sera pas à cet endroit.
Vous garder beans.xml dans le classpath ou src/main/...pkg où java fichier sont enregistrées. Et puis utiliser ClassPathXmlApplicationCOntext
OriginalL'auteur Joe | 2014-01-31
Vous devez vous connecter pour publier un commentaire.
Voici la structure du fichier, j'ai l'habitude d'utiliser, qui fonctionne très bien. @M. Deinum dit, vous aurez envie de mettre votre fichier xml dans un
src/main/resources
. J'ai l'habitude de mettre à dans un paquet complet de chemin avec les ressources au cours de la compilation, maven va ajouter toutes les ressources à même chemin que les classes correspondantes qui les utilisent.ressources copiés sur la classe package lorsque vous faites le au-dessus de
Fonctionne très bien pour moi. Si vous vous demandez pourquoi vous devez toujours utiliser le package complet nom lorsque le fichier xml est déjà dans la même classe de paquets, de ses il sera d'abord recherché dans la classe racine
Mise à JOUR
mis le paquet avec la
bean.xml
dans lesrc/main/resources
. Il devrait travailler avec le chemin d'accès de votre aide.Mise à JOUR 2
La chose est, le Printemps de conteneurs auront l'air de la classe racine. Il n'a rien pour le
resources
dossier. Leresources
est une commodité dir pour les projets maven pour construire votre chemin de classe. La raison pour laquelle le tutoriel fonctionne, c'est que lebeans.xml
est dans un paquet, qui va se mettre dans le chemin de classe dans la construction, comme on le voit ci-dessous. C'est seulement préféré d'utiliser unresources
, mais un paquet de` construire le chemin de classe.Voir mon mise à JOUR 2. L'espoir qui clarifie les choses.
Oui, clairement, en me ce. Je leur dis aussi que dans le Build path, j'ai eu *.java au lieu de tous, que l'exemple avait.
Maintenant, j'ai essayé de courir, mais il venir avec un autre problème, eclipse maintenant, dites-moi que "la Sélection n'a pas de type principal'. Est mon eclipse proyect corrompu?
Voir ici. Cela pourrait être une couple de différentes choses. Assurez-vous également de la classe avec votre
main
méthode est la Classe Principale. Que vous pouvez faire pour votre course config pour voir que.OriginalL'auteur Paul Samsotha