voyent
DR#2 Session Expired  XML
Forum Index -> JBoss Seam Integration
Author Message
msduk

Joined: 12/Feb/2007 00:00:00
Messages: 14
Offline


I just updated to DR#2 from DR#1 and I can no longer get a page at all.

I was using seam 1.2.0 so tried 1.1.6 and have the same issue. Oddly the non supported version 1.2.0 works with DR#1. I just confirmed the only differences are the DR#1 vs DR#2.

EDIT: this is with JAAS and myfaces 1.1.5

Code:
13:20:35,250 ERROR [[Persistent Faces Servlet]] Servlet.service() for servlet Persistent Faces Servlet threw exception
 javax.servlet.ServletException: Session expired
 	at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:34)
 	at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:41)
 	at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:18)
 	at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:48)
 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
 	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
 	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
 	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
 	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
 	at org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPage(FormAuthenticator.java:315)
 	at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:243)
 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
 	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
 	at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
 	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
 	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
 	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
 	at java.lang.Thread.run(Unknown Source)
 13:20:35,250 WARN  [FormAuthenticator] Unexpected error forwarding to login page
 javax.servlet.ServletException: Session expired
 	at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:52)
 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
 	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
 	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
 	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
 	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
 	at org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPage(FormAuthenticator.java:315)
 	at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:243)
 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
 	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
 	at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
 	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
 	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
 	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
 	at java.lang.Thread.run(Unknown Source)

greg.dick

Joined: 26/Oct/2004 00:00:00
Messages: 85
Offline


msduk,

Try adding this to your web.xml file

<listener>
  <listener-class>com.icesoft.faces.webapp.http.servlet.SessionDispatcher$Listener</listener-class>
</listener>

[Email]
adalaros

Joined: 10/Mar/2007 00:00:00
Messages: 1
Offline


Hi greg.dick,

i have the same problem, i got ICEfaces-1.6.0-DR2-bin.zip and when try to run the component-showcase.war in Websphere 6.1 show the same error


[3/28/07 23:23:50:875 GMT] 00000021 ServletWrappe E SRVE0068E: Uncaught exception thrown in one of the service methods of the servlet: Persistent Faces Servlet. Exception thrown : javax.servlet.ServletException: Session expired
at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:52)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:308)
at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:518)
at com.ibm._jsp._index._jspService(_index.java:66)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:115)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:168)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:308)
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:472)
at com.ibm.ws.wswebcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:111)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)
---- Begin backtrace for Nested Throwables
javax.servlet.ServletException: Session expired
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:34)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:41)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:18)
at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:48)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:308)
at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:518)
at com.ibm._jsp._index._jspService(_index.java:66)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:115)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:168)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:308)
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:472)
at com.ibm.ws.wswebcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:111)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)

[3/28/07 23:23:51:065 GMT] 00000021 ServletWrappe E SRVE0068E: Uncaught exception thrown in one of the service methods of the servlet: /index.jsp. Exception thrown : javax.servlet.ServletException: Session expired
at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:52)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:308)
at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:518)
at com.ibm._jsp._index._jspService(_index.java:66)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:115)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:168)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:308)
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:472)
at com.ibm.ws.wswebcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:111)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)
---- Begin backtrace for Nested Throwables
javax.servlet.ServletException: Session expired
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:34)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:41)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:18)
at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:48)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:308)
at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:518)
at com.ibm._jsp._index._jspService(_index.java:66)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:115)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:168)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:308)
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:472)
at com.ibm.ws.wswebcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:111)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)

[3/28/07 23:23:51:075 GMT] 00000021 WebApp E [Servlet Error]-[Session expired]: javax.servlet.ServletException: Session expired
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:34)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:41)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:18)
at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:48)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:308)
at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:518)
at com.ibm._jsp._index._jspService(_index.java:66)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:115)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:168)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:308)
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:472)
at com.ibm.ws.wswebcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:111)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)



msduk

Joined: 12/Feb/2007 00:00:00
Messages: 14
Offline


I added the listener and repackaged in the suggested manner. Unfortunately I still couldn't get it to work.

I was previously mistaken however. I was actually swapping between 1.6DR2 and 1.5.4.
greg.dick

Joined: 26/Oct/2004 00:00:00
Messages: 85
Offline


Hi,

Do you have a stack trace of the current errors?

thanks
Greg
[Email]
robmat


Joined: 06/Mar/2007 00:00:00
Messages: 8
Offline


I have the same problem using Tomcat 5.9.9, and no idea how to solve it.

God damned programmers...
glowbus

Joined: 04/Mar/2007 00:00:00
Messages: 11
Offline


Hello we are also using websphere (6.0)
and also getting the session expired although we included the listener.

(could it be that websphere did not work with that listener i have to write a own class und must extend that from the listener already mentioned. Else i get an class not found for the listener)

greg.dick

Joined: 26/Oct/2004 00:00:00
Messages: 85
Offline


A JIRA entry has been created for this item, as the problem appears to not be due solely to the missing listener.

http://jira.icefaces.org/browse/ICE-1399

[Email]
glowbus

Joined: 04/Mar/2007 00:00:00
Messages: 11
Offline


Hey guys i solved the problem need a bit time but now all is running.

I believe that is an wonderful *feature* of webshpere. If you are debugging the sessiondispatcher you will find out that all sessions are put into an hashmap.

problem is now when icefaces check if the current session is into that hashmap it returns false (why ever i checked the objects into the hashmap and the actuals session obejct and they a exactly same) and throws the session expired exception.
i solved the problem by writing my own sessiondispatcher and where i put the sessionids as keys into my hashmap then all is running wonderful.
u also have to write an own persistensfacesservlet that uses the new sessiondispatcher.

so here is my code its running :-D:

icefacesfixes.PersistentFacesServlet.java

Code:
 
 package icefacesfixes;
 
 import java.io.IOException;
 
 import javax.servlet.GenericServlet;
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
 import com.icesoft.faces.webapp.http.common.Configuration;
 import com.icesoft.faces.webapp.http.core.ResourceServer;
 import com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet;
 import com.icesoft.faces.webapp.http.servlet.PathDispatcher;
 import com.icesoft.faces.webapp.http.servlet.PseudoServlet;
 import com.icesoft.faces.webapp.http.servlet.ServletContextConfiguration;
 import com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet;
 import com.icesoft.util.IdGenerator;
 
 public class PersistentFacesServlet extends HttpServlet {
 	public static final String CURRENT_VIEW_NUMBER = "viewNumber";
 
 	private PathDispatcher dispatcher = new PathDispatcher();
 
 	private static final String AWT_HEADLESS = "java.awt.headless";
 
 	public void init(ServletConfig servletConfig) throws ServletException {
 		try {
 			super.init(servletConfig);
 			ServletContext servletContext = servletConfig.getServletContext();
 			String awtHeadless = System.getProperty(AWT_HEADLESS);
 			if (null == awtHeadless) {
 				System.setProperty(AWT_HEADLESS, "true");
 			}
 			final Configuration configuration = new ServletContextConfiguration(
 					"com.icesoft.faces", servletContext);
 			final IdGenerator idGenerator = new IdGenerator(servletContext
 					.getResource("/").getPath());
 
 			PseudoServlet sessionServer = new SessionDispatcher() {
 				protected PseudoServlet newServlet(HttpSession session) {
 					return new MainSessionBoundServlet(session, idGenerator,
 							configuration);
 				}
 			};
 			ThreadBlockingAdaptingServlet resourceServer = new ThreadBlockingAdaptingServlet(
 					new ResourceServer(configuration));
 
 			dispatcher.dispatchOn(".*xmlhttp\\/.*", resourceServer);
 			dispatcher.dispatchOn(".*", sessionServer);
 		} catch (Exception e) {
 			throw new ServletException(e);
 		}
 	}
 
 	public void service(HttpServletRequest request, HttpServletResponse response)
 			throws ServletException, IOException {
 		try {
 			dispatcher.service(request, response);
 		} catch (RuntimeException e) {
 			throw e;
 		} catch (Exception e) {
 			throw new ServletException(e);
 		}
 	}
 
 	public void destroy() {
 		dispatcher.shutdown();
 	}
 }
 
 



icefacesfixes.SessionDispatcher.java

Code:
 
 package icefacesfixes;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 import javax.servlet.http.HttpSessionEvent;
 import javax.servlet.http.HttpSessionListener;
 
 import org.apache.log4j.Logger;
 
 import pagecode.Menu;
 
 import com.icesoft.faces.webapp.http.servlet.PseudoServlet;
 
 public abstract class SessionDispatcher extends com.icesoft.faces.webapp.http.servlet.SessionDispatcher implements PseudoServlet{
 	protected static Logger logger = Logger.getLogger(SessionDispatcher.class);
 	
 	//having a static field here is ok because web applications are started in separate classloaders
     private final static List SessionDispatchers = new ArrayList();
     private Map sessionBoundServers = new HashMap();
 
     protected SessionDispatcher() {
     	logger.info("constructor");
         SessionDispatchers.add(this);
     }
 
     public void service(HttpServletRequest request, HttpServletResponse response) throws Exception {
         HttpSession session = request.getSession(true);
         //test if session is still around
         if (sessionBoundServers.containsKey(session.getId())) {
             PseudoServlet server = (PseudoServlet) sessionBoundServers.get(session.getId());
             server.service(request, response);
         } else {
             //session has expired in the mean time, server removed by the session listener
             throw new ServletException("Session expired");
         }
     }
 
     public void shutdown() {
         Iterator i = sessionBoundServers.values().iterator();
         while (i.hasNext()) {
             PseudoServlet server = (PseudoServlet) i.next();
             server.shutdown();
         }
     }
 
     private void sessionCreated(HttpSession session) {
         try {
             sessionBoundServers.put(session.getId(), this.newServlet(session));
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }
 
     private void sessionShutdown(HttpSession session) {
         PseudoServlet server = (PseudoServlet) sessionBoundServers.get(session.getId());
         server.shutdown();
     }
 
     private void sessionDestroyed(HttpSession session) {
         sessionBoundServers.remove(session.getId());
     }
 
     protected abstract PseudoServlet newServlet(HttpSession session) throws Exception;
 
     public static class Listener implements HttpSessionListener, ServletContextListener {
         private List sessions = new ArrayList();
         private boolean run = true;
 
         public void sessionCreated(HttpSessionEvent event) {
             HttpSession session = event.getSession();
             sessions.add(session);
 
             Iterator i = SessionDispatchers.iterator();
             while (i.hasNext()) {
                 try {
                     SessionDispatcher sessionDispatcher = (SessionDispatcher) i.next();
                     sessionDispatcher.sessionCreated(session);
                 } catch (Exception e) {
                     new RuntimeException(e);
                 }
             }
         }
 
         public void sessionShutdown(HttpSession session) {
             Iterator i = SessionDispatchers.iterator();
             while (i.hasNext()) {
                 try {
                     SessionDispatcher sessionDispatcher = (SessionDispatcher) i.next();
                     sessionDispatcher.sessionShutdown(session);
                 } catch (Exception e) {
                     new RuntimeException(e);
                 }
             }
             session.invalidate();
         }
 
         public void sessionDestroyed(HttpSessionEvent event) {
             HttpSession session = event.getSession();
             sessions.remove(session);
 
             Iterator i = SessionDispatchers.iterator();
             while (i.hasNext()) {
                 try {
                     SessionDispatcher sessionDispatcher = (SessionDispatcher) i.next();
                     sessionDispatcher.sessionDestroyed(session);
                 } catch (Exception e) {
                     new RuntimeException(e);
                 }
             }
         }
 
         public void contextInitialized(ServletContextEvent servletContextEvent) {
             Thread monitor = new Thread("Session Monitor") {
                 public void run() {
                     while (run) {
                         try {
                             //iterate over the sessions using a copying iterator
                             Iterator iterator = new ArrayList(sessions).iterator();
                             while (iterator.hasNext()) {
                                 final HttpSession session = (HttpSession) iterator.next();
                                 long elapsedInterval = System.currentTimeMillis() - session.getLastAccessedTime();
                                 long maxInterval = session.getMaxInactiveInterval() * 1000;
                                 //shutdown the session a bit (15s) before session actually expires
                                 if (elapsedInterval + 15000 > maxInterval) {
                                     sessionShutdown(session);
                                 }
                             }
 
                             Thread.sleep(10000);
                         } catch (InterruptedException e) {
                             //ignore interrupts
                         } catch (Throwable t) {
                             //just inform that something went wrong
                             //todo: replace this with a warning log call
                             t.printStackTrace();
                         }
                     }
                 }
             };
             monitor.setDaemon(true);
             monitor.start();
         }
 
         public void contextDestroyed(ServletContextEvent servletContextEvent) {
             run = false;
         }
     }
 }
 
 


icefacesfixes.SessionDispatcher.java

Code:
 
 <servlet>
 		<servlet-name>Persistent Faces Servlet</servlet-name>
 		<servlet-class>
 			icefacesfixes.PersistentFacesServlet
 		</servlet-class>
 		<load-on-startup>1</load-on-startup>
 </servlet>
 
 


At least I have one issue:

my websphere has problems to find the listener which was mentioned before. i got all the time a classnotfound exception also when i use the listener into my new sessiondispatcher perhaps someone has an idea to fix that???

mfg glowbus
greg.dick

Joined: 26/Oct/2004 00:00:00
Messages: 85
Offline


Hi,

This issue is exactly as glowbus has found. Unfortunately, the fix won't be in place until DR#4.

thanks,
Greg
[Email]
nerlijma

Joined: 22/Oct/2007 00:00:00
Messages: 36
Offline


I know this is old.. but this is still happening in icefaces 1.7DR3 with websphere 6.02. Can anybody verify this?

is this code still needed?

<code>
<listener>
listener-class>com.icesoft.faces.webapp.http.servlet.SessionDispatcher$Listener</listener-class>
</listener>
</code>
ArminEbert

Joined: 13/Apr/2008 00:00:00
Messages: 1
Offline


Hi guys, I solved the problem on my tomcat by switching off tomcat session persistence. This is done (on tomcat) by putting a META-INF/context.xml file with this content into the webapp

<Context override="true" reloadable="true" >
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Manager pathname="" />
</Context>
 
Forum Index -> JBoss Seam Integration
Go to:   
Powered by JForum 2.1.7ice © JForum Team