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

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...

26
demandé sur Eugene Kuleshov 2011-09-15 23:16:31

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.

45
répondu Eugene Kuleshov 2011-09-27 15:26:36

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
6
répondu lauwie 2011-09-15 19:28:19

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>
2
répondu Vivek Kumar 2013-01-14 14:47:15

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.

1
répondu dlaidlaw 2011-09-15 19:39:31

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.

0
répondu Shafqat Shafi 2017-11-15 17:11:09