Ma déclaration d'application Web dans mon fichier web.xml est la suivante:
<web-app version="2.4"
xmlns="http://Java.Sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/j2ee http://Java.Sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
Et Eclipse se plaint de tous les 4 attributs, voici une plainte pour Eclipse:
Attribute "version" must be declared for element type "web-app"
Pourquoi Eclipse se plaint-il de ces attributs? Est-ce que je fais quelque chose de mal ici?
Supprimez la ligne DOCTYPE, c’est ce que le xsd doit remplacer. J'ai eu le même problème et seulement cela avait fonctionné.
Essayez de mettre de cette façon:
<web-app xmlns="http://Java.Sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/j2ee http://Java.Sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4" >
Le validateur Eclipse est très strict avec la commande.
J'ai eu le même problème. J'ai essayé un emplacement de schéma différent et cela a fonctionné pour moi. Au lieu de
xsi:schemaLocation="http://Java.Sun.com/xml/ns/j2ee http://Java.Sun.com/xml/ns/j2ee/web-app_2_4.xsd"
essayez d'utiliser ceci
xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd
Définissez également la version sur "3.0"
.
Vous n'avez pas oublié cette ligne dans votre fichier XML ?:
<?xml version="1.0" encoding="ISO-8859-1"?>
Votre fichier devrait commencer comme ceci:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://Java.Sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
Si cela ne fonctionne pas, nettoyez et actualisez votre projet.
J'ai changé la déclaration de
http://Java.Sun.com/xml/ns/javaee/web-app_2_4.xsd ">
à la suite et cela a fonctionné comme un charme. Maintenant, aucune erreur ne s'affiche dans web.xml
http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd ">
Reportez-vous au lien this Oracle.com pour savoir ce qui a été annoncé avec Java EE 7 (en supposant que nous travaillions avec cela). Les états de lien
Tous les nouveaux schémas sont dans l'espace de noms http://xmlns.jcp.org/xml/ns/javaee/ .
L'espace de nom Java.Sun
n'est pas devenu Java.Oracle
, mais a été conservé par Le processus de communauté Java (JCP) . Par conséquent, tous les espaces de noms doivent pointer vers xmlns.jcp.org, comme le souligne également la documentation Java EE 7.
Maintenant, lorsque nous déployons une application Web (et donc la nécessité de définir un fichier web.xml), nous devons d’abord savoir ce que nous avons l’intention de faire.
Dites, nous travaillons avec Apache Tomcat V8. Si nous lisons la documentation ici , nous apprenons qu’il est livré avec Servlet 3.1 fourni. Donc, je préférerais une implémentation de Servlet 3.1, juste pour rester à jour si rien d’autre.
Maintenant, tout cela étant dit, voici la déclaration que je voudrais
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
J'espère que cela répond à la question.
Il suffit de retirer le DOCTYPE. Et ça marche bien.