voyent
Liferay Icefaces -User Session Expired AGAIN  XML
Forum Index -> Portals & Portlets Go to Page: 1, 2, 3, 4 Next 
Author Message
dlucas8

Joined: 20/Mar/2008 00:00:00
Messages: 65
Offline


I am running portlets in Liferay 4.4.2 and using ICefaces 1.7.1, when hot deployng a portlet to the container I receive the user session expired popup that I had fixed in the previous version. I understand that this may look like a duplicate but why did adding emptySessionPath="true" in the server.xml file within Tomcat 6 container fix this issue with icefaces 1.7.0. I have no idea how to proceed. This error has stopped production.

deryk.sinotte


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


I hot deploy and redeploy portlets fairly regularly without hitting this issue so we'll probably need some more details about your environment.

Are you using Liferay's Plugin or ext environment or simply copying .war files to the [user.dir]/liferay/deploy directory?

Are all the portlets from the same .war file or are you running portlets from separate .war files?

Does it happen in more than one browser or just typically in one certain browser?

Anything other info you can give may provide clues as to the cause.

Deryk Sinotte
Team Lead
ICEsoft Technologies, Inc.
dlucas8

Joined: 20/Mar/2008 00:00:00
Messages: 65
Offline


i am using hot deploy into liferay/deploy folder

all portlets are in the same war

user session expired pops up on Firefox 3 on Linux and IE7

tomcat 6 container with emptySessionPath="true"
dlucas8

Joined: 20/Mar/2008 00:00:00
Messages: 65
Offline


Here is the war.
 Filename ECGViewer.war [Disk] Download
 Description A war file containing many portlets where we are testing interaction from the gui to the backing beans.
 Filesize 6138 Kbytes
 Downloaded:  295 time(s)

dlucas8

Joined: 20/Mar/2008 00:00:00
Messages: 65
Offline


side note the component-showcase.war. built using the 1.7.1 src works fine on my implementation of liferay, we are using the eclipse project plugin for icefaces (ICEfaces-1.7.1-Eclipse-3.3-plugins).

Tomcat 6
(faces-config for JSF 1.1)
JSF 1.2
JSTL 1.2
Java 5.0
deryk.sinotte


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


I dropped your .war file into my Liferay 5.0.1 + Tomcat 6 configuration and got the error right away. I also had a ClassNotFoundException for a class that I knew was there. So I checked the WEB-INF/lib directory of your application. I noticed that a couple of libraries that might be needed are missing:

commons-discovery.jar
commons-el.jar

When I dropped those two in, it seemed to work much better.

Deryk Sinotte
Team Lead
ICEsoft Technologies, Inc.
dlucas8

Joined: 20/Mar/2008 00:00:00
Messages: 65
Offline


I have added the commons-discovery.jar file, it seems as something went wrong with the export from eclipse using the icefaces 1.7.1 plugin (the commons-digester.jar file is in the project just didn't get exported).

The user session expired popup is still showing up, is that what you are experiencing as well? Our war isnt that much dissimilar to the component-showcase war. I am not sure why we are seeing these errors. Could it be something fundemental to icefaces or do we have something incorectly set in our web.xml file.

Deryk thanks a lot for your quick replies, I hope that we can get this issue resolved.
deryk.sinotte


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


I've replaced all the .jar files with copies of mine from 1.7.1 and from the 1.7 branch. I don't get session expired. I get a different exception:

Aug 7, 2008 4:22:46 PM com.sun.faces.lifecycle.LifecycleImpl phase
WARNING: executePhase(RENDER_RESPONSE 6,com.icesoft.faces.context.BridgeFacesContext@d2142e) threw exception
java.lang.ClassCastException: com.icesoft.faces.context.ElementController
at com.icesoft.faces.context.ElementController.from(ElementController.java:22)
at com.icesoft.faces.context.DOMResponseWriter.enhanceBody(DOMResponseWriter.java:331)
at com.icesoft.faces.context.DOMResponseWriter.enhanceAndFixDocument(DOMResponseWriter.java:276)
...

Our demo portlets don't exhibit either problem so I'm thinking there is a combination of something in your portal app interacting with the ICEfaces framework in a way that our demo portlets don't do. There is another forum thread seeing the same thing that I am so we'll continue to investigate.

http://www.icefaces.org/JForum/posts/list/8360.page

Deryk Sinotte
Team Lead
ICEsoft Technologies, Inc.
dlucas8

Joined: 20/Mar/2008 00:00:00
Messages: 65
Offline


I tried making a smaller demo for you and got another session error problem when trying to add portlet to liferay with this error
17:04:59,813 ERROR [jsp:52] com.icesoft.faces.webapp.http.core.SessionExpiredException: Session has been expired.
at com.icesoft.faces.webapp.http.core.SessionExpiredServer$2.respond(SessionExpiredServer.java:25)
at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:161)
at com.icesoft.faces.webapp.http.common.standard.ResponseHandlerServer.service(ResponseHandlerServer.java:15)
at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer$Matcher.serviceOnMatch(PathDispatcherServer.java:50)
at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:19)
at com.icesoft.faces.webapp.http.core.SessionExpiredServer.service(SessionExpiredServer.java:36)
at com.icesoft.faces.webapp.http.servlet.BasicAdaptingServlet.service(BasicAdaptingServlet.java:16)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:55)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:52)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:29)
at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:82)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)
at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:245)
at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:87)
at com.icesoft.faces.webapp.http.portlet.MainPortlet.doInclude(MainPortlet.java:122)

17:04:59,832 ERROR [InsertTag:922] ServletException in '/html/common/themes/portlet.jsp': File "/TestPortlet25.iface" not found
javax.servlet.ServletException: File "/TestPortlet25.iface" not found
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:609)
at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:99)
at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:135)
at org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:760)
at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:892)
at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:462)
at org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(render_005fportlet_jsp.java:1751)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)
at com.liferay.portal.util.PortalUtil.renderPortlet(PortalUtil.java:1873)
at com.liferay.portal.util.PortalUtil.renderPortlet(PortalUtil.java:1824)
at com.liferay.portal.action.RenderPortletAction.execute(RenderPortletAction.java:94)
at com.liferay.portal.action.UpdateLayoutAction.execute(UpdateLayoutAction.java:223)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:158)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:401)
at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:630)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
at com.liferay.filters.strip.StripFilter.doFilter(StripFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
at com.liferay.filters.compression.CompressionFilter.doFilter(CompressionFilter.java:109)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
at com.liferay.filters.secure.SecureFilter.doFilter(SecureFilter.java:150)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jasig.cas.client.web.filter.TicketValidationFilter.doFilterInternal(TicketValidationFilter.java:119)
at org.jasig.cas.client.web.filter.AbstractCasFilter.doFilter(AbstractCasFilter.java:100)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jasig.cas.client.web.filter.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:97)
at org.jasig.cas.client.web.filter.AbstractCasFilter.doFilter(AbstractCasFilter.java:100)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.doFilter(VirtualHostFilter.java:173)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
at com.liferay.portal.servlet.filters.sessionid.SessionIdFilter.doFilter(SessionIdFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
 Filename testPortlet25.war [Disk] Download
 Description
 Filesize 5773 Kbytes
 Downloaded:  473 time(s)

dhaber

Joined: 22/Jul/2008 00:00:00
Messages: 14
Offline


Hi All,

we have the same problem as the original poster (session expiration error popup) when the two attached wars are used on the same page in liferay. We are using the exact same setup (tomcat 6, etc).

Any ideas?

Thanks!
Doug
 Filename account-list-icey.war [Disk] Download
 Description
 Filesize 10860 Kbytes
 Downloaded:  172 time(s)

 Filename asset-allocation.war [Disk] Download
 Description
 Filesize 14405 Kbytes
 Downloaded:  139 time(s)

dlucas8

Joined: 20/Mar/2008 00:00:00
Messages: 65
Offline


A quick check make sure that in the server.xml file for tomcat located under conf

you have an entry emptySessionPath="true" somtimes this fixes the user session expired problem take a look below

<code>
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
emptySessionPath="true" />

</code>
deryk.sinotte


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


dhaber wrote:
Hi All,

we have the same problem as the original poster (session expiration error popup) when the two attached wars are used on the same page in liferay. We are using the exact same setup (tomcat 6, etc).

Any ideas?

Thanks!
Doug 


If you are using portlets from different wars on the same page, you'll need to configure ICEfaces AHS.

Deryk Sinotte
Team Lead
ICEsoft Technologies, Inc.
dhaber

Joined: 22/Jul/2008 00:00:00
Messages: 14
Offline


Hi All,

Thanks for the quick reply. I have this in my severer.xml:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"
emptySessionPath="true"/>

Does it matter that it's http and not https?

Also, I have AHS configured - both WARs print this in the console:

INFO: Asynchronous HTTP Service available: true

But, I still get constant Session Expiration errors. Any ideas? Do you need more of my configs?

Thanks again!
Doug
deryk.sinotte


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


Well we managed to squash a couple of smaller bugs around the ClassCastExceptions that I was seeing so now I get the Session Expired box regularly.

Since it doesn't occur in our test portlets, there must be something in the applications that is helping to trigger this (I don't get any useful logging from the application or ICEfaces regarding what is causing the session to expire).

Without the source, it's difficult to debug. Could one or both of you provide a smaller test case with source code that replicates the behaviour?

Deryk Sinotte
Team Lead
ICEsoft Technologies, Inc.
dhaber

Joined: 22/Jul/2008 00:00:00
Messages: 14
Offline


Hi,

I'll try to work on that - in the meantime, I think it may be related to using the following in the liferay-portlet.xml:

<private-session-attributes>false</private-session-attributes>

We use this for server side IPC. Without this setting we don't seem to get the Session Expiration errors (only lightly tested), so maybe it's related to the various portlets overwritting each others' session variables?

Is it possible to do server side IPC without this? Does this hypothesis even make sense?

Thanks again!
Doug
 
Forum Index -> Portals & Portlets Go to Page: 1, 2, 3, 4 Next 
Go to:   
Powered by JForum 2.1.7ice © JForum Team