D
DerEwigeGaast
Gast
Hallo,
ich habe Folgendes in meiner web.xml definiert:
[XML]<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/public/sessiontimeout.xhtml</location>
</error-page>[/XML]
Den Pfad zu sessiontimeout.xhtml habe ich schon geprüft
Wenn jetzt nach einer Minute (auch in der web.xml definiert) die Session abläuft, sollte bei der nächsten Interaktion eigentlich der Benutzer (dieser muss sich vorher angemeldet haben) zur jenen sessiontimeout.xhtml weitergeleitet werden. Allerdings fliegt auf meinem Glassfish folgende Exception:
Die Fehlermeldung besagt also, dass der Server versucht, einen Redirect auf die login.xhtml (Pfad stimmt auch) durchzuführen. Ist das ein normales Verhalten (Redirect zur login-Page geht vor Redirect zur sessiontimeout-Page)?
Und zweite Frage: Wiso funktioniert das dann nicht? Die login.xhtml ist ja frei zugänglich...
Auf der Seite des Benutzers zeigt der Webbrowser nur einen Fehler in der übertragenen xhtml-Seite an, da diese komplett leer und ohne Inhalt ist.
Ich bin leider noch nicht so erfahren (mache das nicht beruflich und vermutlich auch nicht sehr professionel / effektiv) und hoffe, mir kann geholfen werden.
Wenn noch weitere Anregungen oder Verbesserungswünsche vorhanden sind, nehme ich mir diese gern zu Herzen und versuche, diese umzusetzen.
Schoneinmal vielen Dank an alle, die mir helfen können
ich habe Folgendes in meiner web.xml definiert:
[XML]<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/public/sessiontimeout.xhtml</location>
</error-page>[/XML]
Den Pfad zu sessiontimeout.xhtml habe ich schon geprüft
Wenn jetzt nach einer Minute (auch in der web.xml definiert) die Session abläuft, sollte bei der nächsten Interaktion eigentlich der Benutzer (dieser muss sich vorher angemeldet haben) zur jenen sessiontimeout.xhtml weitergeleitet werden. Allerdings fliegt auf meinem Glassfish folgende Exception:
Java:
WARNING: ApplicationDispatcher[/Zulassung] PWC1231: Servlet.service() for servlet Faces Servlet threw exception
javax.faces.application.ViewExpiredException: viewId:/public/login.xhtml - Ansicht /public/login.xhtml konnte nicht wiederhergestellt werden.
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:205)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:809)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:671)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:505)
at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:476)
at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:355)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:305)
at org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPage(FormAuthenticator.java:464)
at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:253)
at com.sun.web.security.RealmAdapter.invokeAuthenticateDelegate(RealmAdapter.java:1333)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:551)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:623)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
WARNING: Unexpected error forwarding or redirecting to login page
javax.servlet.ServletException: viewId:/public/login.xhtml - Ansicht /public/login.xhtml konnte nicht wiederhergestellt werden.
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:809)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:671)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:505)
at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:476)
at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:355)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:305)
at org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPage(FormAuthenticator.java:464)
at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:253)
at com.sun.web.security.RealmAdapter.invokeAuthenticateDelegate(RealmAdapter.java:1333)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:551)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:623)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
Caused by: javax.faces.application.ViewExpiredException: viewId:/public/login.xhtml - Ansicht /public/login.xhtml konnte nicht wiederhergestellt werden.
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:205)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
... 32 more
Die Fehlermeldung besagt also, dass der Server versucht, einen Redirect auf die login.xhtml (Pfad stimmt auch) durchzuführen. Ist das ein normales Verhalten (Redirect zur login-Page geht vor Redirect zur sessiontimeout-Page)?
Und zweite Frage: Wiso funktioniert das dann nicht? Die login.xhtml ist ja frei zugänglich...
Auf der Seite des Benutzers zeigt der Webbrowser nur einen Fehler in der übertragenen xhtml-Seite an, da diese komplett leer und ohne Inhalt ist.
Ich bin leider noch nicht so erfahren (mache das nicht beruflich und vermutlich auch nicht sehr professionel / effektiv) und hoffe, mir kann geholfen werden.
Wenn noch weitere Anregungen oder Verbesserungswünsche vorhanden sind, nehme ich mir diese gern zu Herzen und versuche, diese umzusetzen.
Schoneinmal vielen Dank an alle, die mir helfen können
Zuletzt bearbeitet von einem Moderator: