IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

[RichFaces] Problème de rendu de composants


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut [RichFaces] Problème de rendu de composants
    Bonjour à tous,

    Je développe une application J2EE utilisant Spring, Hibernate et JSF (myFaces). Pour m'aider dans la partie présentation j'utilise RichFaces. Il arrive quelques fois (le problème n'est pas systématique) que certains des composants RichFaces ne sont pas correctement et entièrement rendus, je pense notamment aux composants rich:calendar, rich:tabPanel et rich:tab.

    L'application ne crashe pas. La page est rendue entièrement mais ces 3 composants sont rendus sans style (pas de bordure, de couleurs, etc...), juste le texte.

    Par exemple pour l'onglet (rich:tab), je ne verrai que le texte de celui-ci. Si je clique dessus je passe bien sur cet onglet.

    Une erreur survient dans les logs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    10:16:54,727 INFO  [WebappClassLoader] Illegal access: this web application instance has been stopped already.  Could not load org.richfaces.skin.SkinFactory.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
    java.lang.IllegalStateException
            at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1244)
            at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
            at org.richfaces.renderkit.html.iconimages.CalendarSeparator.getDataToStore(CalendarSeparator.java:67)
            at org.ajax4jsf.resource.InternetResourceBase.getUri(InternetResourceBase.java:218)
            at org.ajax4jsf.renderkit.compiler.ResourceElement.getString(ResourceElement.java:114)
            at org.ajax4jsf.renderkit.compiler.ClassElement.getString(ClassElement.java:94)
            at org.ajax4jsf.renderkit.compiler.ClassElement.encode(ClassElement.java:59)
            at org.ajax4jsf.renderkit.compiler.ElementBase.encode(ElementBase.java:105)
            at org.ajax4jsf.renderkit.compiler.ElementBase.encode(ElementBase.java:105)
            at org.ajax4jsf.renderkit.compiler.RootElement.encode(RootElement.java:64)
            at org.ajax4jsf.renderkit.compiler.ElementBase.encode(ElementBase.java:73)
            at org.ajax4jsf.resource.TemplateCSSRenderer.send(TemplateCSSRenderer.java:91)
            at org.ajax4jsf.resource.InternetResourceBase.send(InternetResourceBase.java:376)
            at org.ajax4jsf.resource.ResourceLifecycle.sendResource(ResourceLifecycle.java:221)
            at org.ajax4jsf.resource.ResourceLifecycle.send(ResourceLifecycle.java:146)
            at org.ajax4jsf.resource.InternetResourceService.load(InternetResourceService.java:335)
            at org.ajax4jsf.cache.LRUMapCache.load(LRUMapCache.java:116)
            at org.ajax4jsf.cache.LRUMapCache.get(LRUMapCache.java:87)
            at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:195)
            at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:141)
            at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:500)
    [...]
    10:16:54,733 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
    java.lang.NoClassDefFoundError: org/richfaces/skin/SkinFactory
            at org.richfaces.renderkit.html.iconimages.CalendarSeparator.getDataToStore(CalendarSeparator.java:67)
            at org.ajax4jsf.resource.InternetResourceBase.getUri(InternetResourceBase.java:218)
            at org.ajax4jsf.renderkit.compiler.ResourceElement.getString(ResourceElement.java:114)
            at org.ajax4jsf.renderkit.compiler.ClassElement.getString(ClassElement.java:94)
            at org.ajax4jsf.renderkit.compiler.ClassElement.encode(ClassElement.java:59)
            at org.ajax4jsf.renderkit.compiler.ElementBase.encode(ElementBase.java:105)
            at org.ajax4jsf.renderkit.compiler.ElementBase.encode(ElementBase.java:105)
            at org.ajax4jsf.renderkit.compiler.RootElement.encode(RootElement.java:64)
            at org.ajax4jsf.renderkit.compiler.ElementBase.encode(ElementBase.java:73)
            at org.ajax4jsf.resource.TemplateCSSRenderer.send(TemplateCSSRenderer.java:91)
            at org.ajax4jsf.resource.InternetResourceBase.send(InternetResourceBase.java:376)
            at org.ajax4jsf.resource.ResourceLifecycle.sendResource(ResourceLifecycle.java:221)
            at org.ajax4jsf.resource.ResourceLifecycle.send(ResourceLifecycle.java:146)
            at org.ajax4jsf.resource.InternetResourceService.load(InternetResourceService.java:335)
            at org.ajax4jsf.cache.LRUMapCache.load(LRUMapCache.java:116)
            at org.ajax4jsf.cache.LRUMapCache.get(LRUMapCache.java:87)
            at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:195)
            at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:141)
    [...]
    L'application reste utilisable, mais ça reste quand même peu acceptable. D'une part pour l'utilisateur mais aussi pour moi car les logs sont pollués par ces messages.

    Toute aide est la bienvenue

    Merci d'avance à tous

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    il doit te manquer un jar, ou tu ne dois pas avoir la bonne version, probablement rich-faces-iml.

    tu utilises quels jars de richfaces et versions?

  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    Merci Sniper37 pour ta réponse.

    Pour ce que tu demandes, j'ai téléchargé le fichier richfaces-ui-3.2.2.GA-bin.zip, qui contient :
    - richfaces-api-3.2.2.GA.jar ;
    - richfaces-impl-3.2.2.GA.jar ;
    - richfaces-ui-3.2.2.GA.jar.

    Ces librairies se trouvent :
    - toutes les 3 dans le dossier /lib de mon server d'appli, JBoss.
    - richfaces-ui-3.2.2.GA.jar dans le WAR de mon EAR car il contient les taglib (si non, mes JSPs sont couvertes de warnings car pas de lien vers une TLD).

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    et tu utilise un skin particulier? tu n'a rien ajouter dans le web.xml pour les skins?

  5. #5
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    Nope, juste celui par défaut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    	<context-param>
    		<param-name>org.richfaces.SKIN</param-name>
    		<param-value>DEFAULT</param-value>
    	</context-param>
    	. . .
    	<filter>
    		<display-name>RichFaces Filter</display-name>
    		<filter-name>richfaces</filter-name>
    		<filter-class>org.ajax4jsf.Filter</filter-class>
    	</filter>
    
    	<filter-mapping>
    		<filter-name>richfaces</filter-name>
    		<servlet-name>Faces Servlet</servlet-name>
    		<dispatcher>REQUEST</dispatcher>
    		<dispatcher>FORWARD</dispatcher>
    		<dispatcher>INCLUDE</dispatcher>
    	</filter-mapping>

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    et la version de Jboss?

  7. #7
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    jboss-4.2.3.GA

    Je tourne qu'avec des librairies très récentes (projet vieux de 4 mois uniquement).

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    regarde si dans le fichier
    \server\default\deploy\jboss-web.deployer\META-INF\jboss-service.xml

    si tu as:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <attribute name="UseJBossWebLoader">false</attribute>
    change la valeur à true.

  9. #9
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    La valeur était à false.

    Je viens de la passer à true, sur mon environnement de dev.

    Ce qui est chiant c'est que le problème se produit plus souvent en environnement de test, mais je peux pas me permettre d'y changer la valeur comme ça. Je te tiens au courant si le problème se reproduit.

    Merci pour ton temps.

  10. #10
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Citation Envoyé par jaymz Voir le message
    La valeur était à false.

    Je viens de la passer à true, sur mon environnement de dev.

    Ce qui est chiant c'est que le problème se produit plus souvent en environnement de test, mais je peux pas me permettre d'y changer la valeur comme ça. Je te tiens au courant si le problème se reproduit.

    Merci pour ton temps.
    tu es sur que tu ne déploie pas deux modules sur le serveur? et tu te retrouve avec des jars en double loader par JBoss..

  11. #11
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    sur mon instance Jboss, je ne déploie que mon application en question, et c'est tout.

    Le seul doublon possible, c'est celui de la librairie richfaces-ui-3.2.2.GA.jar, qui se trouve comme je te l'ai dit au niveau du serveur d'appli et dans l'appli elle-même.

  12. #12
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    oui donc il vient de là le problème,
    tu ne peux pas avoir un doublon, soit tu l'enlèves du serveur ou de ton application.

  13. #13
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    si je l'enlève de l'application, j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    2009-01-06 16:03:10,200 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/eflight].[Faces Servlet]] "Servlet.service()" pour la servlet Faces Servlet a généré une exception
    org.apache.jasper.JasperException: L'uri absolue: http://richfaces.org/rich ne peut être résolu dans le fichier web.xml ou dans les fichiers jar déployés avec cette application

  14. #14
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    le mieux c'est de garder ta config de départ, et supprimer le jar du serveur..
    tu aura également des problèmes si tu passe à une nouvelle version de richfaces.

  15. #15
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    le mieux c'est de garder ta config de départ, et supprimer le jar du serveur..
    tu aura également des problèmes si tu passe à une nouvelle version de richfaces.
    Ouais mais le truc c'est que toutes mes librairies sont au niveau serveur (driver Oracle, Hibernate, Spring, etc...) donc j'aurais bien voulu faire de même avec cette librairie.

  16. #16
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    garde la config originale et enlève le jar de ton application alors.
    faut regarder comment fonctionne le classLoader de Jboss.pour ne pas avoir de surprises

  17. #17
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    garde la config originale et enlève le jar de ton application alors.
    faut regarder comment fonctionne le classLoader de Jboss.pour ne pas avoir de surprises
    ouais mais dans ce cas du coup j'ai la fameuse erreur de tout à l'heure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.apache.jasper.JasperException: L'uri absolue: http://richfaces.org/rich ne peut être résolu dans le fichier web.xml ou dans les fichiers jar déployés avec cette application
    J'sais pas pourquoi je dois embarquer cette librairie absolument, alors qu'elle est également au niveau du serveur d'appli...

  18. #18
    Membre expérimenté
    Inscrit en
    Mai 2004
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 335
    Par défaut
    c'est quand cette erreur se produise?

  19. #19
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    Citation Envoyé par seddik_saber Voir le message
    c'est quand cette erreur se produise?
    Celle juste au-dessus ? Au moment du déploiement de l'application.

  20. #20
    Membre expérimenté
    Inscrit en
    Mai 2004
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 335
    Par défaut
    bon je connais pas JBOSS mais quand tu dis j'ai ajouter le jar a mon serveur tu veux dire que le classloader mnt peux le trouver??
    je croix que le probleme viens que le class loader ne trouve pas les shared library (c'est comme ca qu'on les appelles dans OC4J ).

Discussions similaires

  1. Composant composite - Problème de rendu
    Par likeavirgil dans le forum JSF
    Réponses: 8
    Dernier message: 16/06/2014, 17h05
  2. Réponses: 0
    Dernier message: 30/08/2013, 18h13
  3. [awt] Problème de raffraichissement de composant
    Par FakuFaku dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 21/07/2005, 18h32
  4. [CONCEPTION MCD] Problème avec les clés composées
    Par fabriceMerc dans le forum Schéma
    Réponses: 3
    Dernier message: 14/02/2005, 09h43
  5. Problème de rendu 2D
    Par Freakazoid dans le forum DirectX
    Réponses: 6
    Dernier message: 04/08/2004, 21h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo