Tomcat: v6
Spring Tools Suite: v2.7.2
Spring Framework: spring-webmvc-3.0.5
<?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>
<servlet-mapping>
<servlet-name>duckapp</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
web.xml mappe toutes les URL vers le servlet à l'exception de mvc: resources mappant les fichiers statiques.
cvc-complex-type.2.4.c: le caractère générique correspondant est strict, mais aucune déclaration ne peut être trouvée pour l'élément 'mvc: annotation-driven'. app-servlet.xml/app/www/WEB-INF
cvc-complex-type.2.4.c: Le caractère générique 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
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd ne contient pas la ressource élément
S'il est 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: les ressources sont apparues au printemps v3.0.4, mais n'ont pas de nouveau xsd
Comment puis-je corriger les erreurs de compilation pour que les ressources mvc: fonctionnent correctement?
J'ai creusé environ 2 heures pour cela, pas de réponse solide pour le moment ...
Dans votre contexte de printemps, l'URL de l'espace de noms xml mvc doit correspondre à l'URL dans schemaLocation. Quelque chose comme ça:
<?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 de noms est en quelque sorte un identifiant unique, qui est ensuite mappé à l'emplacement réel du schéma dans xsi: schemaLocation.
Lorsque j'utilise des URL d'espaces de noms Spring, je n'utilise normalement pas les informations de version et cela fonctionne la plupart du temps assez bien. Vous voudrez peut-être 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'obtenais la même erreur. La cause en é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 mappage schemaLocation est incorrect. L'espace de noms est spécifié comme suit:
xmlns:mvc="http://www.springframework.org/schema/mvc"
ce qui est correct, je crois, mais dans le schéma Emplacement vous avez
http://www.springframework.org/schema/mvc/spring-mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
Donc, si vous modifiez la première ligne du mappage schemaLocation vers votre espace de noms mvc, cela devrait fonctionner correctement.
Je me suis inscrit au cours de printemps sur udemy. J'ai suivi chaque étape que mon instructeur me montrait. Donc, si vous utilisez Spring mvc et hibernate, vous pouvez rencontrer cette erreur. Impossible de lire le document de schéma ' http://www.springframework.org/schema/tx/spring-tx.xsd ' etc. pour:
<mvc:annotation-driven/> and <tx:annotation-driven transaction-manager="myTransactionManager" /> elements
dans mon fichier de configuration de printemps, j'avais ces deux URL
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, c'est-à-dire spring-mvc-4.2.xsd et spring-tx-4.2.xsd
Donc, à mon avis, spécifier la version non explicitement est une bonne pratique. Cela a fonctionné pour moi, j'espère que cela fonctionne aussi pour vous. Je vous remercie.