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

Glassfish et Payara Java Discussion :

Erreur fin Valve servlet Catalina


Sujet :

Glassfish et Payara Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut Erreur fin Valve servlet Catalina
    Bonjour, j'ai une erreur à l'issue d'une redirection dans une Valve au moment où la dernière valve (donc la servlet) traite la request que j'ai modifié:

    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
    SSOAgentValve[/techDecisionDB3srv]: Processed : /techDecisionDB3srv [http://localhost:14160/techDecisionDB3srv/josso_login/] ret=1
    StandardWrapperValve[default]: PWC1406 : servlet.service() pour le servlet default a émis une exception.
    java.lang.IllegalStateException
            at org.apache.coyote.tomcat5.CoyoteResponseFacade.sendError(CoyoteResponseFacade.java:449)
            at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:756)
            at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:400)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:292)
            at java.security.AccessController.doPrivileged(Native Method)
            at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
            at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:325)
            at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:208)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:420)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
            at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
            at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
            at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
    Ne sert à rien dans cette logique mais fait plaisir
    La dernière ligne est issue du postInvoke histoire de bien identifier que l'erreur est au niveau de la servlet (ValveBase).

    Voici le code qui produit la redirection:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                    if (debug >= 1)
                        log("T4 Redirecting to login url '" + loginUrl + "'");
     
                    //set non cache headers
                    _agent.prepareNonCacheResponse(hres);
                    hres.sendRedirect(hres.encodeRedirectURL(loginUrl));
                    ret =  Valve.INVOKE_NEXT;
                    return ret;
    Rien de folichon, je passe à la Valve suivante c'est à dire la servlet, et là c'est le drame. Au niveau du context je suis sur un serveur GlassFish et la servlet en question est protégée via JAAS, mais je ne suis pas encore dans la partie protégée, c'est la servlet default qui me crache, d'ailleurs j'ai la même erreur en accèdant à une page non protégée (index.html).

    Avez-vous des idées ? (Je sais c'est encore un sujet sur la sécurité

    Merci

  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
    visiblement tu envoie une redirection au client et tu continue à invoquer les autres valves. Comme tu as déjà invoqué la redirection, tout autre opération est interdite sur la réponse, d'ou le illegalstateException quand la servlet essaie de faire son boulot et d'envoyer un code d'erreur. Tu devrais retourner autre chose dans ta valve que INVOKE_NEXT (doit y avoir un invoke stop ou un truc du genre poru arrêter la cascade des valves)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut END_PIPELINE
    Bonjour,

    Alors ce serait un END_PIPELINE qui bloque le passage à la prochaine Valve en fait la servlet (ValveBase) ?
    Je vais essayer.

    SP

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut END_PIPELINE ou NEXT_INVOLVE + postInvoke
    Re,

    J'ai essayé effectivement je n'ai plus cette erreur, en informatique quand il faut choisir entre A ou B il y a toujours un doute, je ne sais pas pourquoi ?

    Merci

    Stéphane Popoff

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

Discussions similaires

  1. erreur de compile servlet sur unix
    Par roninou dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/11/2006, 17h21
  2. [COMPILATION][SERVLET]Erreur dans une servlet
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 04/09/2006, 19h40
  3. Erreur: Fin de fichier inattendue.
    Par Berzerk_ dans le forum C++
    Réponses: 22
    Dernier message: 01/06/2006, 17h07
  4. Erreur 500 (tomcat + servlets)
    Par naima2005 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 10/05/2006, 17h14
  5. [Tomcat] erreur 500 jsp servlet
    Par juanqui dans le forum Tomcat et TomEE
    Réponses: 13
    Dernier message: 23/02/2006, 11h45

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