使用别名时,Chrome中的会话已过期或无效

时间:2012-10-04 19:40:55

标签: ajax google-chrome session icefaces

我有一个使用部署在WebSphere 6上的IceFaces 1.8.2构建的Web应用程序。

  1. 当我尝试使用服务器IP地址或主机名访问它时(例如通过调用10.250.46.80:8080/myApplication或host.domain.com:8080/myApplication),一切正常。
  2. 当我尝试通过别名(例如www.myapplication.com)访问它时,应用程序加载欢迎页面,重定向到jspx页面没有任何问题,但后来我看到它继续加载几秒钟而不是我得到一个http错误500说:
  3. Error Message: javax.faces.FacesException: javax.faces.FacesException: Problem in renderResponse: User session has expired or it was invalidated.
    Error Code: 500
    Target Servlet: Persistent Faces Servlet
    Error Stack:
    java.lang.Exception: javax.faces.FacesException: javax.faces.FacesException: Problem in renderResponse: User session has expired or it was invalidated.
         at com.icesoft.faces.context.View.servePage(View.java:153)
         at com.icesoft.faces.webapp.http.core.SingleViewServer.service(SingleViewServer.java:52)
    ...
    ...
         at com.icesoft.faces.context.View$2$1.respond(View.java:49)
         at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:201)
         at com.icesoft.faces.context.View$2.serve(View.java:78)
         at com.icesoft.faces.context.View.servePage(View.java:150)
         ... 44 more
    

    我尝试打开同步更新,应用程序不再崩溃,但我注意到没有Ajax功能像ValueChange侦听器一样工作。当我在下拉列表中更改值(部分提交)时,浏览器开始加载某些内容,然后我再次收到错误500.

    仅当使用Google Chrome作为浏览器时才会出现这种情况。它不会发生在IE,Opera,Firefox或Safari中。

    我尝试在Chrome控制台中手动调用发送 - 接收更新的Ajax请求,但响应是< session-expired />在Firefox中,我获得了正常的内容。

    我尝试过对齐标题之类的随机内容,但由于Chrome会阻止大多数标题的修改,我无法真正尝试将它们与Firefox的标题对齐以进行测试。

    任何人都有类似的经历吗?

1 个答案:

答案 0 :(得分:0)

当使用别名(我不知道确切的命名:url重写/转发?​​虚拟主机/代理传递?)导致转发/重定向时,请确保浏览器默认情况下不会在包含再次使用别名,否则你可能会陷入无限循环。

我的案例的解决方案是我插入了自己的favicon图像,因此Chrome不会插入默认图片。