1

我有一个使用部署在 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 说:
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 的标题对齐来测试它。

有人经历过类似的事情吗?

4

1 回答 1

0

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

我的情况的解决方案是我插入了自己的网站图标图像,因此 Chrome 不会插入默认图像。

于 2014-01-30T11:26:22.170 回答