Aucune déclaration ne peut être trouvée pour l'élément "mvc:resources"
En Cours D'Exécution
Tomcat: v6
Printemps, Suite d'Outils: v2.7.2
Spring Framework: spring-webmvc-3.0.5
Servlet XML
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc/spring-mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<mvc:annotation-driven />
<mvc:resources mapping="/resources/**" location="/resources" />
<context:component-scan base-package="com.app.mvc" />
</beans>
web.xml partielle code
<servlet-mapping>
<servlet-name>duckapp</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Servlet But
web.xml renvoie toutes les URL au servlet, à l'exception de mvc:resources mapping static files.
Bugs
cvc-complexe-type.2.4.c: le Joker correspondant est strict, mais aucune déclaration ne peut être trouvé pour l'élément 'mvc:annotation-driven". app-servlet.xml / app/www / WEB-INF
cvc-complexe-type.2.4.c:le Joker correspondant est strict, mais aucune déclaration ne peut être trouvée pour l'élément 'mvc: resources'. app-servlet.xml / app/www / WEB-INF
Problèmes Connus
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd ne contient pas l'élément ressource
si remplacé par http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd ne fonctionne toujours pas et peut ne pas fonctionner selon les fichiers jar du printemps 3.05
mvc:ressources est apparue au printemps v3.0.4, mais n'a pas de nouveau xsd
Question
Comment puis-je corriger les erreurs de compilation pour que mvc:resources fonctionne correctement?
je creuse depuis environ 2 heures cette, pas encore de réponse...
5 réponses
dans votre contexte de printemps, l'url de l'espace de noms MVC xml doit correspondre à l'url de la schemaLocation. Quelque chose comme ceci:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
il s'agit d'une déclaration D'espace de noms XML standard. L'url de l'Espace-nom est en quelque sorte un id unique, qui est ensuite mappé à l'emplacement réel du schéma dans xsi:schemaLocation.
lors de L'utilisation des urls des namespaces de printemps, je n'utilise normalement pas d'informations de version et que fonctionne la plupart du temps assez bien. Vous pouvez essayer l'url de l'espace de noms
http://www.springframework.org/schema/mvc/spring-mvc.xsd
au lieu de
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
j'avais la même erreur. La cause était le ressort de dépendance Maven manquant-webmvc. J'ai inclus la dépendance ci-dessous et elle a commencé à fonctionner.
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
je pense que votre schématisation est incorrecte. L'espace de noms est défini comme suit:
xmlns:mvc="http://www.springframework.org/schema/mvc"
ce qui est correct, je crois, mais dans la schemaLocation vous avez
http://www.springframework.org/schema/mvc/spring-mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
donc si vous changez la première ligne de la mise en correspondance de la schemaLocation à votre espace de noms mvc, cela devrait fonctionner correctement.
je me suis inscrit au cours du printemps sur udemy. J'ai suivi chaque pas que mon instructeur m'a montré à faire. Donc, si vous utilisez printemps mvc et hibernation vous pouvez rencontrer cette erreur Échec de la lecture du schéma du document 'http://www.springframework.org/schema/tx/spring-tx.xsd ' etc for:
<mvc:annotation-driven/> and <tx:annotation-driven transaction-manager="myTransactionManager" /> elements
dans mon fichier de configuration de printemps j'avais ces deux urls
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
dans xsi:schemaLocation, que j'ai remplacé par
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
en fait, j'ai visité ces deux sites http://www.springframework.org/schema/mvc/ et http://www.springframework.org/schema/tx/ et vient d'ajouter la dernière version de spring-mvc et spring-tx I. E, spring-mvc-4.2.xsd et printemps-tx-4.2.xsd
donc, à mon avis, spécifier la version non explicitement est une bonne pratique. Ça a marché pour moi, j'espère que ça marche pour toi aussi. Remercier.