我遇到了令我困惑的Java问题。以下是我对此网络应用程序流程的快速解释。
这一切在我的本地环境中使用四种主要浏览器都可以正常工作。 但是当代码在线时,它在FF和Chrome中不起作用。会话属性在步骤5中丢失。
额外信息。在FF和Chrome中,如果我回到第1步再试一次,那么一切正常没有会话丢失的问题。它继续正常工作,直到我关闭浏览器并重新开始。
我使用的是Tomcat 7,Java 7和Spring MVC第4版。 下面是我的代码的主要部分以及一些日志跟踪,您可以在其中查看FF和Chrome中的会话ID丢失情况,而不是IE和Safari中的会话ID。
是时间问题吗?为什么FF和Chrome是唯一不起作用的? 关于是什么导致这个问题的任何想法?关于如何修理或我还能检查什么的任何建议?
ManagerWebsiteFlow {
public String build(HttpServletRequest request) {
request.getSession().setAttribute("MyObjectName", "MyContent");
log.error("MWF The Session ID Is : " + request.getSession().getId());
// More code here
}
}
<!-- output.jsp -->
<html>
<body>
<img src="http://www.onlinewebsite.com/streamReport.do" id="mainImg" />
</body>
</html>
ManagerStreamReport{
public boolean convertChart(HttpServletRequest request, HttpServletResponse response) {
log.error("MCC The Session ID Is : " + request.getSession().getId());
// More code here
}
}
*** LOG4J File **
-- Logging when using Chrome
10-14@20:56:13 ERROR (ManagerWebsiteFlow.java:51) - MWF The Session ID Is : 9804070CF5C01EB1B8DA4690158A9E2B
10-14@20:56:13 ERROR (ManagerStreamReport.java:34) - MSC The Session ID Is : 699645602C235EE27D829DAAEBF7DF55
-- Logging when using FF
10-14@20:55:26 ERROR (ManagerWebsiteFlow.java:51) - MWF The Session ID Is : 7DB390D949399B26AFAB5D4071872738
10-14@20:55:26 ERROR (ManagerStreamReport.java:34) - MSC The Session ID Is : B078DB4F3B3B55A03477E12972AC617A
-- Logging when using IE
10-14@20:57:04 ERROR (ManagerWebsiteFlow.java:51) - MWF The Session ID Is : B344BEDE232C7574332A55C0D28D2561
10-14@20:57:05 ERROR (ManagerStreamReport.java:34) - MSC The Session ID Is : B344BEDE232C7574332A55C0D28D2561
-- Logging when using Safari
10-14@20:57:50 ERROR (ManagerWebsiteFlow.java:51) - MWF The Session ID Is : FB8B892E5E20049421BA185EEC3B3FAA
10-14@20:57:51 ERROR (ManagerStreamReport.java:34) - MSC The Session ID Is : FB8B892E5E20049421BA185EEC3B3FAA
答案 0 :(得分:0)
如果将来有人遇到这种情况,以下是我的问题的解决方案。 html图片代码使用“http://www.onlinewebsite.com”但是当我进入网站时,我使用的是“onlinewebsite.com”。因此,没有找到“不同”域的现有会话。
为避免此问题,server.xml上下文中需要以下两个属性:
sessionCookiePath="/"
sessionCookieDomain=".onlinewebsite.com">
这适用于tomcat 7。