Printemps ContextLoader ne parvient pas à trouver applicationContext.xml
J'ai travaillé seul sur un projet pour un long temps, et maintenant, un autre développeur rejoint donc je voulais mettre en place le projet sur sa machine à partir de SVN. Nous sommes à la fois à l'aide de très similaire set-ups:
- OS X Snow Leopard
- Dernière Eclipse WTP
- m2eclipse Plugin Maven
- Subversive SVN du Plugin
- Tomcat 6.0.24
Printemps version utilisée est 2.5.6.
J'ai mis en place le projet sur sa machine à l'aide d'Eclipse du "Projet de SVN" outil de, essentiellement la création d'une copie 1:1 du projet. Maven a pris soin de toutes les dépendances sans problèmes, autant que je peux dire, le projet est compilé sans problèmes. La structure du projet est la suite de l'Maven standard pour les applications web avec des ressources (comme l'applicationContext.xml) dans src/main/resources, le code du projet dans src/main/java et tous les web-app fichiers liés dans src/main/webapp et src/main/webapp/WEB-INF respectivement.
L'web.xml est configuré pour charger le contexte de la sorte:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
À l'aide de la "Serveurs" de l'outil d'Eclipse, j'ai essayé de lancer l'application à partir d'Eclipse, mais il n'a pas immédiatement avec un FileNotFoundException quand vous essayez de charger le applicationContext.xml.
Depuis le code extrait à partir de SVN a été laissé intact, je suppose que le problème a à voir avec un certain nombre de paramètres pour le plugin Maven. Ou que j'ai oublié certains étape importante pour finaliser la mise en place. Personne n'a rencontré un problème similaire ou a une idée où je devrais commencer à chercher?
Merci beaucoup pour votre aide!
- vérifiez si le fichier a été copié à l'emplacement approprié - à-d. WEB-INF/classes/applicationContext.xml
- Il n'est pas copié dans WEB-INF/classes, mais ce n'est pas le cas dans ma propre (fonctionnement) du projet. Au lieu de cela, le fichier est copié dans target/classes par Maven standard. Cela semble de nouveau à travailler sur les deux machines. Peut-être certains de configuration est manquante pour ce dossier afin d'être inclus dans le classpath sur les start-up?
Vous devez vous connecter pour publier un commentaire.
C'est correct et parfaitement bien (comme vous voulez le
applicationContext.xml
à être sur les tests de chemin de classe).Il est copié à
target/yourapp/WEB-INF/classes
, mais pas parprocess-resources
qui est appelé par défaut par m2eclipse sur les modifications de ressources (ce but copies/filtres de ressources pourtarget/classes
). Cela se produit au cours de lapackage
phase (ou lors de l'appel explicitementwar:war
,war:inplace
ouwar:exploded
). Comme expliqué dans la l'utilisation de la page, la GUERRE Plugin n'est pas responsable de la compilation des sources java ou copiant les ressources.Donc, je vous suggère de
package
la guerre avant de l'exécuter sur un Serveur. Peut-être que vous pouvez configurer m2eclipse pour faire cela automatiquement sur les modifications de ressources (cliquez-droit sur sur votre projet, puis sélectionnez Propriétés > Maven et ajouter leswar
objectif de la Objectifs pour invoquer sur les modifications de ressources). N'essayez pas de faire ça bien.Lors du lancement de l'application avec les serveurs de plugin, il s'attend à ce que votre dossier web contient tout le nécessaire. C'est pourquoi vous devez configurer votre dossier de sortie de projet (à partir du projet de construction de chemin d'accès options) pour être
src/main/webapp/WEB-INF/classes
Alternativement, vous pouvez utiliser le FileSync plugin pour copier les fichiers.
Btw, vous n'avez pas spécifié quelles sont les options pour les Serveurs plugin, et si votre projet est un "Dynamic Web Project" (c'est à dire déployable) ou pas.
src/main/webapp/WEB-INF/classes
est une bonne idée. Et pour info, un projet avec un emballage de typewar
sera reconnu comme un "Dynamic Web Project" par défaut si vous avez la m2eclipse de la VP en charge (qui est probablement le cas ici).src
est vraiment pas grand OMI (ne seront pas nettoyés parclean
). Généré choses devraient aller danstarget
. Et en fin de compte, le plugin m2eclipse devrait être améliorée 🙂