Problem :
J'ai eu l'erreur suivante :
The content of element type "filter" must match "(icon?,filter-name,display-name?,description?,filter-class,init-param*)".
Voici un extrait du fichier web.xml :
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
Solution :
En faite, la solution est dans le message.On doit déclarer les balises de filter-mappings dans un certain ordre.
Il faut mettre en premier filter-name puis url-pattern ou servlet name.
So you have to correct like that :
<filter>
<filter-name>richfaces</filter-name>
<display-name>RichFaces Filter</display-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
Une remarque importante :
Cette erreur est apparue car j'avais mis dans le fichier web.xml la dtd 2.3 :
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
Cependant, il ne s'agit pas de la dernière dtd. Apparement, pour corriger l'erreur, il faut écrire le début de son web.xml comme ceci :
<?xml version="1.0"?>
<web-app version="2.5"
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">