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 :

Exception lors du lancement de l'application si le navigateur n'est pas encore lancé


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2013
    Messages : 117
    Par défaut Exception lors du lancement de l'application si le navigateur n'est pas encore lancé
    Bonjour,

    Je rencontre un problème que je ne sais résoudre.
    Le fait est que si je fais un run de mon projet, mon application web se lance correctement si j'ai déjà des pages web ouvertes.
    Le soucis est que si mon navigateur n'a aucune page d'ouverte avant mon run, j'ai l'exception ci-dessous qui s'affiche au lancement de l'application
    (ce qui a pour conséquence de ne pas afficher mon image de fond).

    Exception :
    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
     
    SEVERE: "Servlet.service()" pour la servlet Faces Servlet a généré une exception
    java.lang.IllegalStateException
                    at org.apache.catalina.connector.ResponseFacade.setBufferSize(ResponseFacade.java:252)
                    at com.sun.faces.context.ExternalContextImpl.setResponseBufferSize(ExternalContextImpl.java:799)
                    at com.sun.faces.application.resource.ResourceHandlerImpl.handleResourceRequest(ResourceHandlerImpl.java:268)
                    at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
                    at org.primefaces.application.PrimeResourceHandler.handleResourceRequest(PrimeResourceHandler.java:132)
                    at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125)
                    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:591)
                    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
                    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
                    at fr.gouv.persee.filter.LoginFilter.doFilter(LoginFilter.java:76)
                    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
                    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
                    at fr.spi4j.filter.HttpSessionFilter.doFilter(HttpSessionFilter.java:69)
                    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
                    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
                    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
                    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
                    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
                    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
                    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
                    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
                    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
                    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
                    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
                    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
                    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
                    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
                    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
                    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
                    at java.lang.Thread.run(Unknown Source)
    faces-config.xml
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?xml version="1.0" encoding="UTF-8"?>
     
     
     
    <faces-config
        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-facesconfig_2_1.xsd"
        version="2.1">
    </faces-config>

    web.xml
    Code xml : 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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
     
      <display-name>persee-client-jsf</display-name>
     
      <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
      </welcome-file-list>
     
      <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
     
      <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
      </servlet-mapping>
     
      <filter>
             <filter-name>HttpSessionFilter</filter-name>
             <filter-class>fr.spi4j.filter.HttpSessionFilter</filter-class>
      </filter>
     
      <filter-mapping>
             <filter-name>HttpSessionFilter</filter-name>
             <servlet-name>Faces Servlet</servlet-name>
      </filter-mapping>
     
       <filter>
             <filter-name>LoginFilter</filter-name>
             <filter-class>fr.gouv.persee.filter.LoginFilter</filter-class>
      </filter>
     
      <filter-mapping>
             <filter-name>LoginFilter</filter-name>
             <servlet-name>Faces Servlet</servlet-name>
      </filter-mapping>
     
      <context-param>
      <param-name>primefaces.THEME</param-name>
      <param-value>mint-choc</param-value>
      </context-param>
     
    </web-app>

    Quelqu'un a t-il déjà rencontré ce problème ? Merci d'avance pour votre aide.

  2. #2
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2013
    Messages : 117
    Par défaut
    Personne n'a une quelconque idée ?
    Je n'arrive pas à lancer le débogueur au démarrage avant l'exception

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2013
    Messages : 117
    Par défaut
    toujours ce problème, je désespère

  4. #4
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2013
    Messages : 117
    Par défaut
    Cette erreur apparait au premier lancement de l'application lors du run.
    Les fois suivante , aucun problème.
    Cest embêtant car du coup au premier lancement je n'ai pas mon fond d'écran et tout ce qui concerne les cases a cocher primefaces, images de menu etc

  5. #5
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2013
    Messages : 117
    Par défaut
    Personne n'est en mesure de m'aider sur ce problème ?

  6. #6
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Fais voir le code de ton HttpSessionFilter et de ton LoginFilter pour voir, je pense savoir d'où ça vient.

  7. #7
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    Salut
    Utilises tu Tomcat
    Eric

  8. #8
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2013
    Messages : 117
    Par défaut
    Merci pour votre aide.
    En effet j'utilise tomcat v7.0.

    Et pour le LoginFilter et le httpSessionFilter, trouvez les ci dessous:





    Loginfilter


    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
     
    package fr.gouv.persee.filter;
     
     
     
    import java.io.IOException;
     
    import javax.servlet.Filter;
     
    import javax.servlet.FilterChain;
     
    import javax.servlet.FilterConfig;
     
    import javax.servlet.ServletException;
     
    import javax.servlet.ServletRequest;
     
    import javax.servlet.ServletResponse;
     
    import javax.servlet.http.HttpServletRequest;
     
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.log4j.Logger;
     
    import fr.gouv.persee.business.api.persee.administration.CompteDto;
     
    import fr.spi4j.exception.Spi4jRuntimeException;
     
    import fr.spi4j.lib.security.Spi4jSecurity_Abs;
     
    import fr.spi4j.lib.security.User_Itf;
     
     
     
    /**
     
    * Filtre d'authentification de l'application. Si l'utilisateur n'est pas
     
    * connecté, il est redirigé sur la page 'index.xhtml'.
     
    *
     
    */
     
    //@WebFilter(filterName = "LoginFilter", urlPatterns = { "/faces/accueil/*", "/faces/agenda/*", "/faces/administration/*", "/faces/pages/*" })
     
    public class LoginFilter implements Filter
     
    {
     
           /** Logger, Log4j. */
     
           private static final Logger LOGGER = Logger.getLogger(LoginFilter.class);
     
     
     
           /** URL de redirection login. */
     
           private static final String URL_LOGIN       = "/index.xhtml";
     
     
     
           /** URL de redirection home. */
     
           private static final String URL_REDIRECTION = "/accueil.xhtml";
     
     
     
           @Override
     
           public final void doFilter(final ServletRequest arg0, final ServletResponse arg1, final FilterChain arg2) throws IOException, ServletException
     
           {
     
                 HttpServletRequest req = (HttpServletRequest) arg0;
     
                 HttpServletResponse res = (HttpServletResponse) arg1;
     
                 String url = req.getRequestURI();
     
                 if (!url.contains("index")){
     
                        try{
     
                               if (Spi4jSecurity_Abs.getInstance()!=null)
     
                               {      
     
                                      User_Itf compte =  Spi4jSecurity_Abs.getInstance().getCurrentUser();
     
                                      if (compte!=null && compte instanceof CompteDto)
     
                                      {
     
     
     
                                      }
     
                                      else
     
                                      {
     
                                            String contextPath = req.getContextPath();
     
                                            Spi4jSecurity_Abs.getInstance().deconnexion();
     
                                            res.sendRedirect(contextPath + URL_LOGIN);
     
                                      }
     
                               }
     
                               else
     
                               {
     
                                      String contextPath = req.getContextPath();
     
                                      res.sendRedirect(contextPath + URL_LOGIN);
     
                               }
     
     
     
                        }
     
                        catch (Spi4jRuntimeException e)
     
                        {
     
                               // pas encore log
     
                               String contextPath = req.getContextPath();
     
                               res.sendRedirect(contextPath + URL_LOGIN);
     
                        }
     
                 }
     
     
     
                 arg2.doFilter(arg0, arg1);
     
           }
     
     
     
           @Override
     
           public void destroy()
     
           {
     
                 // RAS
     
           }
     
     
     
           @Override
     
           public void init(final FilterConfig arg0) throws ServletException
     
           {
     
                 // RAS
     
           }
     
    }
    HttpSessionFilter.class
    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
     
    package fr.spi4j.filter;
     
     
     
    import java.io.IOException;
     
    import javax.servlet.Filter;
     
    import javax.servlet.FilterChain;
     
    import javax.servlet.FilterConfig;
     
    import javax.servlet.ServletException;
     
    import javax.servlet.ServletRequest;
     
    import javax.servlet.ServletResponse;
     
    import javax.servlet.http.HttpServletRequest;
     
    import javax.servlet.http.HttpSession;
     
     
     
    /**
     
    * Filtre de servlet qui récupère la session http en la créant si besoin et qui la rend disponible dans le code pour le thread courant durant toute la durée de la requête.<br/>
     
    * Ce filtre de servlet peut être utilisé aussi bien dans un contexte client léger tel que JSF que dans un contexte RDA avec le remoting Spi4J.
     
    */
     
    public class HttpSessionFilter implements Filter
     
    {
     
       private static final ThreadLocal<HttpSession> c_threadLocal = new ThreadLocal<HttpSession>();
     
     
     
       private static boolean initialized;
     
     
     
       /**
     
        * Retourne la session http liée au client exécutant la requête en cours. <br/>
     
        * Cette session peut être utilisée pour stocker les informations et profils de l'utilisateur courant <br/>
     
        * (quand il est authentifié) et les profils de cet utilisateur peuvent alors être utilisés <br/>
     
        * pour vérifier que cet utilisateur a le droit d'exécuter une méthode en particulier sur un service <br/>
     
        * (par exemple, avec un SecurityProxy vérifiant que l'utilisateur est authentifié dans la session http <br/>
     
        * et que ses profils correspondent à  ceux autorisés dans le paramètre d'une annotation <br/>
     
        * sur la méthode du service).
     
        * @return HttpSession
     
        */
     
       public static HttpSession getSessionForCurrentThread ()
     
      {
     
          if (!initialized)
     
          {
     
             throw new IllegalStateException(
     
                      "Le filtre HttpSessionFilter n'a pas été initialisé, vous devez ajouter une déclaration de filter et de filter-mapping dans le fichier web.xml de votre webapp");
     
          }
     
          return c_threadLocal.get();
     
       }
     
     
     
       @Override
     
       public void doFilter (final ServletRequest p_request, final ServletResponse p_response, final FilterChain p_chain)
     
                throws IOException, ServletException
     
       {
     
          if (!(p_request instanceof HttpServletRequest))
     
          {
     
             // ce n'est pas une requête http, ce filtre ne fait rien sur cette requête
     
             p_chain.doFilter(p_request, p_response);
     
             return;
     
          }
     
          final HttpServletRequest v_request = (HttpServletRequest) p_request;
     
     
     
          // récupère la session http du client et crée la session si elle ne l'est pas déjà 
     
          // (ce qui positionnera un cookie avec jsessionId dans la réponse)
     
          final HttpSession v_session = v_request.getSession();
     
          bindHttpSessionOnCurrentThread(v_session);
     
     
     
          try
     
          {
     
             p_chain.doFilter(p_request, p_response);
     
          }
     
          finally
     
          {
     
             unbindHttpSessionOnCurrentThread();
     
          }
     
       }
     
     
     
       /**
     
        * Associe une session http avec le thread courant (cette session doit absolument être désassociée avec unbind avant que le thread ne serve à  une autre requête http).
     
        * @param p_session
     
        *           HttpSession
     
        */
     
       private static void bindHttpSessionOnCurrentThread (final HttpSession p_session)
     
       {
     
          c_threadLocal.set(p_session);
     
       }
     
     
     
       /**
     
        * Désassocie la session http du thread courant.
     
        */
       private static void unbindHttpSessionOnCurrentThread ()
     
       {
     
          c_threadLocal.remove();
     
       }
     
     
     
       /**
     
        * Définit la valeur de initialized
     
        * @param p_initialized
     
        *           boolean
     
        */
     
       private static void setInitialized (final boolean p_initialized)
     
       {
     
          initialized = p_initialized;
     
       }
     
     
     
       @Override
     
       public void init (final FilterConfig p_filterConfig) throws ServletException
     
       {
     
          setInitialized(true);
     
       }
     
     
     
       @Override
     
       public void destroy ()
     
       {
     
          // RAS
     
       }
     
    }

  9. #9
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Fait un return; après tes sendRedirect pour forcer la sortie de la chaine filtres, ça devrait aller mieux


    Version améliorée de ton filtre sans le return (parce que je trouve ça moche):

    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
    76
    77
    78
     
           @Override
     
           public final void doFilter(final ServletRequest arg0, final ServletResponse arg1, final FilterChain arg2) throws IOException, ServletException
     
           {
     
                 HttpServletRequest req = (HttpServletRequest) arg0;
     
                 HttpServletResponse res = (HttpServletResponse) arg1;
     
                 String url = req.getRequestURI();
     
                 boolean doRedirect = false;
     
                 if (!url.contains("index")){
     
                        try{
     
                               if (Spi4jSecurity_Abs.getInstance()!=null)
     
                               {      
     
                                      User_Itf compte =  Spi4jSecurity_Abs.getInstance().getCurrentUser();
     
                                      if (compte!=null && compte instanceof CompteDto)
     
                                      {
     
     
     
                                      }
     
                                      else
     
                                      {
     
     
     
                                            Spi4jSecurity_Abs.getInstance().deconnexion();
     
                               doRedirect = true;
     
                                      }
     
                               }
     
                               else
     
                               {
     
                               doRedirect = true;
     
                               }
     
     
     
                        }
     
                        catch (Spi4jRuntimeException e)
     
                        {
     
                               // pas encore log
                               doRedirect = true;
     
                        }
     
                 }
     
                 if (doRedirect){
                              String contextPath = req.getContextPath();
                              res.sendRedirect(contextPath + URL_LOGIN);
                 } else {
                               arg2.doFilter(arg0, arg1);
     
                  }
           }

  10. #10
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    salut,
    essaies d´ajouter un return comme ceci voir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      else
     
                                      {
     
                                            String contextPath = req.getContextPath();
     
                                            Spi4jSecurity_Abs.getInstance().deconnexion();
     
                                            res.sendRedirect(contextPath + URL_LOGIN);
                                            return;
     
                                      }
    eric

  11. #11
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2013
    Messages : 117
    Par défaut
    Merci .
    Cela corrige bien mon problème au niveau des images de menu primefaces, cases a cocher etc.
    Quelle est l'utilité de ce return;
    Comment , en tant que novice, j'aurai pû trouver ca moi meme ?

    Reste un dernier problème qui est plus de niveau visuel, lors du lancement de l'application, si le navigateur est déjà ouvert alors mon image de fond a l'écran de connexion apparait bien.

    Mais si le navigateur n'est pas lancé, mon ecran de connexion n'a pas l'image de fond et c'est donc tout blanc.
    Une idée ? Je n'ai rien au niveau de la console .

    Encore merci le plus gros soucis est résolu

  12. #12
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Citation Envoyé par GDS_Strou Voir le message
    Merci .
    Cela corrige bien mon problème au niveau des images de menu primefaces, cases a cocher etc.
    Quelle est l'utilité de ce return;
    Comment , en tant que novice, j'aurai pû trouver ca moi meme ?
    L'utilité est de te forcer à terminer ta méthode. Après tout, si tu as choisi de faire une redirection, tu n'as pas besoin d'exécuter la suite des filtres ! (vu que tu ne sais pas ce que les autres filtres peuvent décider de faire...)

    Comment tu aurais pu savoir? Ba je sais pas trop.
    En tout cas, coder avec du return a tendance à masquer l'algorithme que tu voulais réellement utiliser : faire des tests sur différents éléments, et à la fin, déterminer ce que tu veux faire : rediriger ou continuer la chaine de traitement des filtres (en plus, ça t'oblige à copier/coller plein de fois les deux mêmes lignes).


    De manière générale, il faut essayer de ne PAS avoir de return dans une méthode void, et n'avoir qu'un seul return dans une méthode qui doit renvoyer quelque chose, ça te poussera toujours à mieux penser ton code (regarde la version que j'ai fait de ton filtre plus haut)



    Mais si le navigateur n'est pas lancé, mon ecran de connexion n'a pas l'image de fond et c'est donc tout blanc.
    Une idée ? Je n'ai rien au niveau de la console .
    J'aurai tendance à dire que ça vient des filtres, mais ils ont l'air configuré pour ne filtrer que les pages xhtml... Donc à moins de nous montrer le code de ta page, je ne vois pas ce qui cloche


    EDIT : je confirme, ça vient de la configuration de tes filtres ! Il faut exclure les éléments qui ne sont pas à filtrer (css, images)
    Ajoute ça (en imaginant que tes éléments sont dans des sous-dossiers css, js et images) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/css/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/js/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/images/*</url-pattern>
    </servlet-mapping>

  13. #13
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2013
    Messages : 117
    Par défaut
    Merci pour les explications, j'ai pris ta version pour le filtre du coup.
    C'est vrai que c'est plus lisible maintenant.
    J'ai juste vu une différence, avant la derniere ligne était exécutée à chaque fois et avec ta version que si doRedirect = false.
    Le problème venait peut etre de ca aussi ?

    Sinon j'ai ajouté les servlet-mapping dans le web.xml mais ca ne résout pas le problème.
    Mon image de fond est paramétré dans le fichier css et la page de connexion défini ce css dans un h:outputStylesheet.

    Partie du css qui défini l'image de fond :
    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
     
    body {
     
        background-color: #695444;
     
        color: #9BCC60;
     
        background-image: url("./../resources/images/fondPersee.jpg");
     
        background-repeat: no-repeat;
     
        background-size: cover;
     
        background-attachment: fixed;   
     
    }
    Page de connexion :
    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
     
     
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <h: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:p="http://primefaces.org/ui"
     
           xmlns:pe="http://primefaces.org/ui/extensions">
     
     
     
    <h:head>
     
           <title>PERSEE</title>
     
           <h:outputStylesheet name="style.css" library="css" />
     
           <h:outputStylesheet name="iconesPersee.css" library="css" />
     
           <link rel="icon" href="resources/images/favicon.ico" type="image/ico" />
     
           <script src='resources/javascripts/scripts.js' />
     
    </h:head>
     
     
     
    <h:body>
     
           <table style="width: 100%;" border="0">
     
                 <tr>
     
                        <td colspan="1" style="width: 38%">
     
                               <center>
     
                                      <img src="./resources/images/cofas logo200x200.png" alt="CFAS" />
     
                               </center>
     
                        </td>
     
     
     
                        <td>
     
                               <table>
     
                                      <tr>
     
                                            <td style="width: 8%"><div style="float: right">
     
                                                          <img src="./resources/images/perseeLogo100x100.png" alt="P" />
     
                                                   </div></td>
     
                                            <td style="width: 16%"><div style="float: left">
     
                                                          <h1 style="color: #9BCC60; font-size: 70px">ERSEE</h1>
     
                                                   </div></td>
     
     
     
                                      </tr>
     
                               </table>
     
                        </td>
     
     
     
     
     
                        <td colspan="1" style="width: 38%">
     
                               <center>
     
                                      <img src="./resources/images/fas200x200.png" alt="CFAS" />
     
                               </center>
     
                        </td>
     
                 </tr>
     
     
     
           </table>
     
           <br /><br /><br /><br />
     
           <table border="0" style="width: 100%;">
     
                 <tr>
     
                        <td colspan="1" style="width: 25%">
     
    <br/>
     
                        </td>
     
                        <td colspan="1">
     
     
     
                               <center>
     
                                      <p:panel header="Authentification" style="width: 100%; ">
     
                                            <p:messages id="messages1" showDetail="true" autoUpdate="true" closable="true"  />
     
                                            <h:form id="connexion">
     
                                                   <table>
     
                                                          <tr>
     
                                                                <td><br />      </td>
     
                                                          </tr>
     
                                                          <tr>  
     
                                                          <!--   <td><p:graphicImage value="/resources/images/Icon-warning2.png" title="L'Identifiant est obligatoire" /></td> -->
     
                                                                <td><p:outputLabel for="identifiant" value="Identifiant :" /></td>
     
                                                                <td><p:inputText id="identifiant" value="#{connexionBean._identifiant}"  /></td>
     
     
     
                                                                <td><p:message for="identifiant" display="Identifiant" /></td>
     
     
     
                                                          </tr>
     
                                                          <tr>
     
                                                     <!--  <td><p:graphicImage value="/resources/images/Icon-warning2.png" title="L'Identifiant est obligatoire" /></td> -->
     
                                                                <td><p:outputLabel value="Mot de passe :" /></td>
     
                                                                <td><p:password id="motDePasse" value="#{connexionBean._motDePasse}"   /></td>
     
                                                          </tr>
     
                                                          <tr>
     
                                                                <td><br /></td>
     
                                                          </tr>
     
                                                          <tr>
     
                                                                <td colspan="3"><center>
     
                                                                              <p:commandButton value="Se Connecter" update="connexion" actionListener="#{connexionBean.seConnecter}" />           
     
                                                                       </center></td>
     
                                                          </tr>
     
                                                   </table>
     
                                            </h:form>
     
     
     
                                      </p:panel>
     
                               </center>
     
     
     
     
     
     
     
                        </td>
     
                        <td colspan="1" style="width: 25%">
     
                               <br/>
     
                        </td>
     
                 </tr>
     
           </table>
     
     
     
           <div id="footer">
     
                        <table border="0" width="100%">
     
                               <tr>
     
     
     
                                      <td style="width: 90%; font-size: 12px">Version 0.1 du
     
                                            03/10/2014</td>
     
                                      <td style="width: 10%"><img
     
                                            src="./resources/images/logoCDADB.png" alt="" /></td>
     
                               </tr>
     
                        </table>
     
           </div>
     
           <!--  fin footer -->
     
    </h:body>
     
    </h:html>

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par GDS_Strou Voir le message
    Quelle est l'utilité de ce return;
    arrêter l'exécution de la requête
    Citation Envoyé par GDS_Strou Voir le message
    Comment , en tant que novice, j'aurai pû trouver ca moi meme ?
    En apprenant comment fonctionnent les filtres et en lisant la doc:

    http://docs.oracle.com/javaee/5/api/...ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)

    4. a) Either invoke the next entity in the chain using the FilterChain object (chain.doFilter()),
    4. b) or not pass on the request/response pair to the next entity in the filter chain to block the request processing
    Il est assez évident si tu veux rediriger l'utilisateur que tu n'a pas envie que la requete actuelle aie lieu, donc il est normal de ne pas passer à la suite du filtre.

Discussions similaires

  1. Problème lors du lancement de deux applications Interbase
    Par Morfus dans le forum Bases de données
    Réponses: 8
    Dernier message: 25/10/2007, 19h48
  2. Réponses: 3
    Dernier message: 28/03/2007, 11h40
  3. Erreur lors du lancement d'une application
    Par mouloudéen dans le forum Access
    Réponses: 1
    Dernier message: 09/10/2006, 02h57
  4. Réponses: 4
    Dernier message: 26/08/2006, 16h31
  5. Réponses: 6
    Dernier message: 06/07/2006, 18h44

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