Aucune déclaration ne peut être trouvée pour l'élément 'context: annotation-config'
Au printemps chaque fois que j'écris <context:annotation-config/>
dans mon printemps.xml je reçois cette erreur: -
Exception dans le thread" main " org.springframework.haricot.usine.XML.XmlBeanDefinitionStoreException: ligne 81 dans le document XML de la ressource de chemin de classe [spring.xml] n'est pas valide; l'exception imbriquée est org.XML.Saxo.SAXParseException; lineNumber: 81; numéro de colonne: 30; cvc-complexe-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 'contexte: annotation-config'.
Et le contenu de mon printemps.xml est
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"
xmlns:context="http://www.springframework.org/schema/context"
>
<bean id="circle" class="com.mysite.Circle">
</bean>
...
<context:annotation-config/>
Quelqu'un pourrait-il me dire où je vais mal ????
4 réponses
Vous utilisez un espace de noms XML (dans ce contexte de cas) sans le déclarer
Changez votre xml en ceci:
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
Vous référenciez également http://www.springframework.org/schema/beans/spring-beans-4.0.xsd , qui je ne pense pas existe.
Si vous utilisez Spring 4.0, voici ce que j'ai trouvé:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd"
xmlns:context="http://www.springframework.org/schema/context">
Ça a marché pour moi. Trouvé la référence ici: http://javahash.com/spring-4-mvc-hello-world-tutorial-full-example/
Attention: lorsque vous utilisez l'espace de noms context
, vous devez mettre à jour dans XML head 2 attributs:
-
xmlns:context
-
xsi:schemaLocation
.
Débutants utilisés pour ajouter seulement xmlns:context
et oublier 2 nouvelles entrées à xsi:schemaLocation
:
<beans xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd"
......
>
Ajoutez ces lignes dans votre fichier xml.
<xmlns:context="http://www.springframework.org/schema/context"
Et
<xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
.