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 :

Problème de Facelets custom EL functions sous JBoss


Sujet :

JSF Java

  1. #1
    mbinte
    Invité(e)
    Par défaut Problème de Facelets custom EL functions sous JBoss
    Bonjour,

    Nous avons migrée une application qui tournait sous Tomcat 5 avec JSF 1.1 comme framwork de présentation vers un serveur JBoss 4 et du JSF 1.2.

    Dans le code nous utilisons des custom EL Function qui nous permette de faire de la concaténation :

    dans la jsp
    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:t="http://myfaces.apache.org/tomahawk"
    	xmlns:myaudit="http://montag"
    	>
    ....
     
     
    <h:commandButton class="bouton" id="boutton1"
    				value="#{monBean.value}"
    				actionListener="#{monBean.doAction}">
    				</h:commandButton>
     
    ....
     
    <h:outputText value="#{<nom_du_resource_bundle>[montag:concat(chaine1,chaine2)]}" />
    mon-custom-tag.taglib.xml
    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
     
    <?xml version="1.0"?>
    <!DOCTYPE facelet-taglib PUBLIC
      "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
      "http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
     
    <facelet-taglib xmlns="http://java.sun.com/JSF/Facelet">
    	<namespace>http://montag</namespace>
    	<function>
    		<function-name>concat</function-name>
     
    		<function-class>com.MaClasseUtil</function-class>
    		<function-signature>
    			java.lang.String concat(java.lang.String, java.lang.String)
    		</function-signature>
    	</function>	
    </facelet-taglib>
    Dans web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <context-param>
    		<param-name>facelets.LIBRARIES</param-name>
    		<param-value>/WEB-INF/tomahawk.taglib.xml; /WEB-INF/mon-custom-tag.taglib.xml</param-value>
    	</context-param>
    Lors du 1er chargement de la page JSP, j'ai ma custom fonction qui s'exécute correctement. Le problème survient lorsque je clique sur le bouton qui va m'effectuer l'action définit dans l'actionlistener et revient sur la page. La j'ai une exception qui me dit que la fonction montag:concat n'est pas trouvée.
    j'ai vérifié sous Tomcat cela fonctionne correctement....

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    javax.faces.FacesException: Exception while calling encodeEnd on component : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /user/profilDetail.jsp][Class: javax.faces.component.html.HtmlForm,Id: referentiel][Class: org.apache.myfaces.component.html.ext.HtmlDataTable,Id: profilLines][Class: org.apache.myfaces.custom.column.HtmlSimpleColumn,Id: j_id110][Class: org.apache.myfaces.custom.datalist.HtmlDataList,Id: typeDonnees][Class: javax.faces.component.html.HtmlOutputText,Id: j_id112]}
    	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:627)
    	at org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:522)
    	at org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:499)
    	at org.apache.myfaces.custom.datalist.HtmlListRenderer.encodeChildren(HtmlListRenderer.java:178)
    	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:611)
    	at org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:516)
    	at org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:499)
    	at org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:520)
    	at org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.renderColumnBody(HtmlTableRenderer.java:731)
    	at org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBase.encodeColumnChild(HtmlTableRendererBase.java:349)
    	at org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.encodeColumnChild(HtmlTableRenderer.java:615)
    	at org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:325)
    	at org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:144)
    	at org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.encodeChildren(HtmlTableRenderer.java:280)
    	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:611)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:250)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:257)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:257)
    	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
    	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
    	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:155)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:246)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at fr.ca.sa.es.web.filtre.RecosFacesFiltre.doFilter(RecosFacesFiltre.java:56)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at fr.ca.sa.es.web.util.context.ContextFilter.doFilter(ContextFilter.java:199)
    	at fr.ca.sa.es.web.util.context.ContextFilter.doFilter(ContextFilter.java:66)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:246)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:301)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
    	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
    	at java.lang.Thread.run(Thread.java:619)
    Caused by: javax.faces.FacesException: Could not retrieve value of component with path : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /user/profilDetail.jsp][Class: javax.faces.component.html.HtmlForm,Id: referentiel][Class: org.apache.myfaces.component.html.ext.HtmlDataTable,Id: profilLines][Class: org.apache.myfaces.custom.column.HtmlSimpleColumn,Id: j_id110][Class: org.apache.myfaces.custom.datalist.HtmlDataList,Id: typeDonnees][Class: javax.faces.component.html.HtmlOutputText,Id: j_id112]}
    	at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getValue(RendererUtils.java:331)
    	at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:279)
    	at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderOutput(HtmlTextRendererBase.java:74)
    	at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:61)
    	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:624)
    	... 60 more
    Caused by: javax.el.ELException: /user/profilDetail.jsp @252,91 value="#{referentielLabels[montag:concat('profil.typeDonnee.', typeDonnee)]}": Function 'montag:concat' not found
    	at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76)
    	at javax.faces.component.UIOutput.getValue(UIOutput.java:73)
    	at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getValue(RendererUtils.java:327)
    	... 64 more
    Il me semble que cela provient du fait que pour la migration nous avons du utiliser la librairie el-ri de JBoss, mais je ne sais pas trop comment résoudre le problème. Quelqu'un aurait t-il déjà été confronté à ce problème, et si oui comment l'a t-il résolue.

    Merci !

  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
    Points : 5 059
    Points
    5 059
    Par défaut
    enlève les El de ton dossier de lib; la librairie existe sur le serveur.

  3. #3
    mbinte
    Invité(e)
    Par défaut
    Oui cela est déjà fait. Nous avons un projet maven, et la librairie el été mise avec un scope provided.

  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
    Points : 5 059
    Points
    5 059
    Par défaut
    et les librairies JSF aussi existent dans JBoss, tu utilise quel version?

  5. #5
    mbinte
    Invité(e)
    Par défaut
    Dans le web.xml nous avons désactivé la prise en charge de JSF au niveau du JBoss :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <!-- Disable JBoss builtin JSF implementation. -->
    	<context-param>
    		<param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
    		<param-value>true</param-value>
    	</context-param>

  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
    Points : 5 059
    Points
    5 059
    Par défaut
    tu as quels librairie dans le dossier lib?

  7. #7
    mbinte
    Invité(e)
    Par défaut
    Nous avons :

    - jsf-facelets-1.1.14
    - myfaces-api-1.2.6
    - myfaces-impl-1.2.6
    - tomahawk12-1.1.7

    Voila tous les jar que nous avons dans les lib du projet tournant autour de JSF

  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
    Points : 5 059
    Points
    5 059
    Par défaut
    je m'excuse, je n'ai pas bien lu ton post, ce n'est pas un problème de déploiement .
    le problème doit venir de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #{<nom_du_resource_bundle>[montag:concat(chaine1,chaine2)]}
    Il s'agit d'une librairie de tag? elle est déclaré dans le web.xml?

  9. #9
    mbinte
    Invité(e)
    Par défaut
    Oui ce n'est pas un problème de déploiement. Comme indiqué dans le poste initiale, il s'agit d'une librairie de tag perso qui est déclaré dans le web.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <context-param>
    		<param-name>facelets.LIBRARIES</param-name>
    		<param-value>/WEB-INF/tomahawk.taglib.xml; /WEB-INF/mon-custom-tag.taglib.xml</param-value>
    	</context-param>

Discussions similaires

  1. Problème de déploiement d'un war sous JBoss
    Par uaibys dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 11/08/2010, 17h18
  2. Problème d'accès à distance pour une application sous JBoss
    Par El Saigneur dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 05/06/2010, 17h22
  3. Problème avec un MDB sous jboss
    Par fred2.0 dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 17/10/2008, 11h18
  4. problème de séquence avec deux base de donnée JPA sous JBoss
    Par eclectik dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 14/09/2008, 18h55
  5. [JSP/Servlet] Problème de déploiement sous JBoss
    Par mittim dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 11/07/2006, 14h57

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