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 java.lang.NumberFormatException: For input string: "null" sur clique menuitem


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut Erreur java.lang.NumberFormatException: For input string: "null" sur clique menuitem
    Bonjour,

    Dans mon appli JSF/PF, j'ai un menu que je construis avec un DefaultMenuModel.
    J'ai notamment le MenuItem "Déconnexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    /**
             * Construis le sous-menu "Déconnexion"
             */
    	private void buildMenuDeconnexion() {
    		DefaultMenuItem deconnexion = new DefaultMenuItem(getMessage("Deconnexion"), "ui-icon-close");
            deconnexion.setCommand("#{menuView.logout}");
            menuModel.addElement(deconnexion);
    	}
    Qui appelle la méthode logout() :
    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
     
    /**
             * Méthode de déconnexion de l'utilisateur
             */
    	public void logout() {
    		FacesContext context = FacesContext.getCurrentInstance();
    		ExternalContext externalContext = context.getExternalContext();
     
    		try {
    			HttpSession session = ((HttpServletRequest) externalContext
    					.getRequest()).getSession();
    			session.invalidate();
     
    			externalContext.redirect(externalContext.getRequestContextPath() + IUrlLocation.URL_LOGIN);
    		} catch (Exception e) {
    			context.addMessage(null, new FacesMessage(e.getMessage()));
    		}
    	}
    L'URL login :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static final String URL_LOGIN = "/connexion/login.xhtml";
    Le filtre, référencé par l'erreur :
    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
     
    public class LoginFilter implements Filter {
     
        /**
         * Checks if user is logged in. If not it redirects to the login.xhtml page.
         */
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            // Get the loginBean from session attribute
            Utilisateur loginBean = (Utilisateur) ((HttpServletRequest) request).getSession().getAttribute("user");
     
            // For the first application request there is no loginBean in the session so user needs to log in
            // For other requests loginBean is present but we need to check if user has logged in successfully
            if (loginBean == null) {
                String contextPath = ((HttpServletRequest) request).getContextPath();
                ((HttpServletResponse) response).sendRedirect(contextPath + IUrlLocation.URL_LOGIN);
            }
     
            chain.doFilter(request, response);
        }
     
        public void init(FilterConfig config) throws ServletException {
            // Nothing to do here!
        }
     
        public void destroy() {
            // Nothing to do here!
        }   
     
    }
    Quand je clique sur "Déconnexion", obtiens l'erreur suivante, alors que si je mets un point d'arrêt dans la méthode lgout(), je ne m'y arrête pas:

    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
     
    public class LoginFilter implements Filter {
     
        /**
         * Checks if user is logged in. If not it redirects to the login.xhtml page.
         */
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            // Get the loginBean from session attribute
            Utilisateur loginBean = (Utilisateur) ((HttpServletRequest) request).getSession().getAttribute("user");
     
            // For the first application request there is no loginBean in the session so user needs to log in
            // For other requests loginBean is present but we need to check if user has logged in successfully
            if (loginBean == null) {
                String contextPath = ((HttpServletRequest) request).getContextPath();
                ((HttpServletResponse) response).sendRedirect(contextPath + IUrlLocation.URL_LOGIN);
            }
     
            chain.doFilter(request, response);
        }
     
        public void init(FilterConfig config) throws ServletException {
            // Nothing to do here!
        }
     
        public void destroy() {
            // Nothing to do here!
        }   
     
    }
    Qqun a-t-il une idée du problème ?
    Merci d'avance pour votre aide

  2. #2
    Membre éprouvé Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Par défaut
    J'ai déjà eu une erreur nommer java.lang.NumberFormatException, ça venait du fait que j'essayait de parse en int un string qui pouvait être vide à certains moment, mais du coup je ne voit pas du tout le rapport avec ton programme.

  3. #3
    Membre éprouvé Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Par défaut
    Tu utilise quel logicielle de développement ( eclispe , netBeans , ...) ? Et tu n'as pas une erreur plus du type :


    Code ERROR : 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
     
     
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
    	at java.lang.Double.parseDouble(Unknown Source)
    	at WindowDebit$4.run(WindowDebit.java:287)
    	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    	at java.awt.EventQueue.access$200(Unknown Source)
    	at java.awt.EventQueue$3.run(Unknown Source)
    	at java.awt.EventQueue$3.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)

  4. #4
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut
    J'utilise eclipse, voici la trace complète :
    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
    2015-04-20T16:21:14.623+0200|Grave: java.lang.NumberFormatException: For input string: "null"
    	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    	at java.lang.Integer.parseInt(Integer.java:580)
    	at java.lang.Integer.parseInt(Integer.java:615)
    	at org.primefaces.component.menu.BaseMenuRenderer.findMenuitem(BaseMenuRenderer.java:83)
    	at org.primefaces.component.menu.BaseMenuRenderer.decode(BaseMenuRenderer.java:61)
    	at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:831)
    	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1225)
    	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220)
    	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220)
    	at org.primefaces.component.layout.Layout.processDecodes(Layout.java:226)
    	at javax.faces.component.UIForm.processDecodes(UIForm.java:225)
    	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220)
    	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220)
    	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:929)
    	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
    	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.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    	at ch.rwb.application.filters.LoginFilter.doFilter(LoginFilter.java:41)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
    	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)
    Merci pour ton aide

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Par défaut
    tu dois faire un parse de int en String

  6. #6
    Membre éprouvé Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Par défaut
    Tu nous as pas donner le code correspondant à l'erreur, comme l'as dit Monta, tu dois avoir faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Interger.ParseInt(String)
    quelque part. Et le string doit pouvoir être "null" à un moment donné , ce qui provoque l'erreur.

    Il nous faudrait le bon code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. java.lang.NumberFormatException: For input string: ""
    Par momjunior dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/04/2019, 00h50
  2. Réponses: 2
    Dernier message: 21/06/2013, 12h33
  3. Réponses: 0
    Dernier message: 06/05/2010, 10h43
  4. Réponses: 5
    Dernier message: 20/11/2009, 13h18
  5. Réponses: 1
    Dernier message: 15/01/2009, 11h22

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