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 :

Erreur "PROCESS_VALIDATIONS 3"


Sujet :

JSF Java

  1. #1
    Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Australie

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 48
    Points : 50
    Points
    50
    Par défaut Erreur "PROCESS_VALIDATIONS 3"
    Bonjour
    Après une longue journée de recherche sur Google , Je n'ai pas pu comprendre d'ou vient cette erreur et surtout comment peux-je la corriger

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FATAL:   JSF1073 : javax.faces.FacesException intercepté durant le traitement de PROCESS_VALIDATIONS 3 : UIComponent-ClientId=, Message=null
    FATAL:   No associated message


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     <h:selectOneMenu id="section" value="#{recupererValeurs.section}" onchange="submit()" 
                       >
            <f:valueChangeListener type="com.XXX.yyy.web.tests.SectionChangeListener" />
               <f:selectItem itemValue="" />
                <f:selectItem itemValue="Section01" />
                <f:selectItem  itemValue="Section02" />
                <f:selectItem  itemValue="Section03" />
                <f:selectItem  itemValue="Section04" />
     
            </h:selectOneMenu>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    @ManagedBean(name="recupererValeurs")
    @SessionScoped
    public class RecupererValeurs implements Serializable {
        	private static final long serialVersionUID = 1L;
             String section;//setter+getter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class SectionChangeListener implements ValueChangeListener{
     
     
        @Override
        public void processValueChange(ValueChangeEvent event) throws AbortProcessingException {
            Section section = (Section) FacesContext.getCurrentInstance().
            getExternalContext().getSessionMap().get("section"); 
         section.setId((Long) event.getNewValue());
        }
    }
    Merci pour vos aides

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Normalement tu devrais avoir un message d'erreur détaillé dans les logs de ton conteneur. En tout cas je note déjà ces erreurs dans ton listener:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    section.setId((Long) event.getNewValue());
    Tu ne sais pas si section est null ou pas. vue le "Message=null" que tu as reçu, y a de fortes chances que ce soit ça.
    Ensuite, tu essaie de convertir event.getNewValue() en Long, mais la value est une String qui prends les valeurs "Section01", "Section02" ..., c'est tout sauf un long!

  3. #3
    Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Australie

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 48
    Points : 50
    Points
    50
    Par défaut
    Bref, j'ai modifié les valeurs des items en double mais encore ça marche pas malheureusement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     <f:valueChangeListener type="com.XXX.yyy.web.tests.SectionChangeListener" />
               <f:selectItem itemValue="" />
                <f:selectItem itemValue="0.01" />
                <f:selectItem  itemValue="0.02" />
                <f:selectItem  itemValue="0.03" />
                <f:selectItem  itemValue="0.04" />
     
            </h:selectOneMenu>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @Override
        public void processValueChange(ValueChangeEvent event) throws AbortProcessingException {
            Section  section = (Section ) FacesContext.getCurrentInstance().
            getExternalContext().getSessionMap().get("section"); 
         section.setSectionNominale((double) event.getNewValue());
        }
    Voila ce que j'obtiens:
    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
     
    java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double
    	at com.xxx.yyy.web.tests.SectionChangeListener.processValueChange(SectionChangeListener.java:25)
    	at com.sun.faces.facelets.tag.jsf.core.ValueChangeListenerHandler$LazyValueChangeListener.processValueChange(ValueChangeListenerHandler.java:128)
    	at javax.faces.event.ValueChangeEvent.processListener(ValueChangeEvent.java:134)
    	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:813)
    	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:755)
    	at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1197)
    	at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
    	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
    	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
    	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
    	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
    	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    	at java.lang.Thread.run(Thread.java:745)

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    non c'est toujours des String. La "newValue" de l'event aura toujours le même type que la propriété du bean dans laquelle tu le stocke. En l'occurence ici, tu as déclaré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     String section;//setter+getter

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