Affichage des articles dont le libellé est j2ee. Afficher tous les articles
Affichage des articles dont le libellé est j2ee. Afficher tous les articles

mercredi 24 août 2011

The content of element type must match

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

dimanche 24 juillet 2011

cvc-complex-type.2.4.a: Invalid content was found starting with element 'display-name'.

Problème :

cvc-complex-type.2.4.a: Invalid content was found starting with element 'display-name'. One of '{"http://java.sun.com/xml/ns/javaee":servlet-class, "http://java.sun.com/xml/ns/javaee":jsp-file}' is 
 expected.

Dans Eclipse, j'ai la balise display-name souligné en rouge:

web.xml :
   <servlet>
<servlet-name>monitor</servlet-name>
<display-name>monitor</display-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>/WEB-INF/monitor-servlet.xml</param-value>
    </init-param>
<load-on-startup>1</load-on-startup>
   </servlet>

Solution:

Il faut mettre la balise display-name en premier :

   <servlet>
<display-name>monitor</display-name>  
<servlet-name>monitor</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>/WEB-INF/monitor-servlet.xml</param-value>
    </init-param>
<load-on-startup>1</load-on-startup>
   </servlet>

Remarque : Sur mon projet google : http://code.google.com/p/lin-mon-webapp/, j'ai commité un fichier web;xml sans erreur de validation (J'ai pu le vérifier en faisant validate dans Eclipse).