我有一个使用部署在 WebSphere 6 上的 IceFaces 1.8.2 构建的 Web 应用程序。
- 当我尝试使用服务器 IP 地址或主机名(例如通过调用 10.250.46.80:8080/myApplication 或 host.domain.com:8080/myApplication)访问它时,一切正常。
- 当我尝试通过别名(例如 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 的标题对齐来测试它。
有人经历过类似的事情吗?