我遇到了几个乍一看无法理解的问题。这个故事很简单,但我想解决方案是一些真正的配置/部署问题/不一致的背后。
我已经定义了一个 JSP 和两个 servlet。JSP 在会话中放入一些东西,servlet 应该获取数据并对其进行操作。主要症状是 servlet 在 Chrome 和 Firefox 中查看 JSP 时看不到会话数据。有趣的是,当使用 Eclipse 内部浏览器以及使用 Internet Explorer(在 Win7 上工作)时,JSP/servlet 确实共享数据。
这是一个有点长的描述以及一些关于本地配置的信息(和随后的症状)(并且,我相信存在问题):我已经在 c:\labs\eclipse 下安装了 Eclipse (Helios) 并解压了 Tomcat ( 7.0.12) 在 c:\labs\tomcat 下。我还安装了启动 Tomcat 的 Sysdeo 插件。
首先,当我使用 Sysdeo Eclipse 插件按钮启动 Tomcat,然后尝试从外部浏览器访问一些与应用程序相关的 URL - 然后找到主 Tomcat 页面,但没有找到应用程序 JSP/页面。但是,当我使用“播放/运行”Eclipse按钮启动Tomcat(当正在选中Eclipse Web项目时的某些JSP页面时) - 然后我可以从Eclipse内部浏览器和任何外部浏览器中看到渲染的JSP页面。这两种启动模式有什么区别?
其次,当仅通过“播放/运行”Eclipse 按钮启动 Tomcat,并从内部 Eclipse 浏览器或外部 Internet Explorer 浏览器调用 JSP 和 servlet 时,JSP 和 servlet 将正确共享所有数据。但是(仅针对相同的启动模式)如果我尝试从外部 Chrome/Firefox 浏览器访问 JSP/servlet - 然后找到了 JSP/servlet,但数据似乎没有通过 http 会话共享(打印会话 id并验证它是正确的)。
第三,当我通过“支付/运行”按钮启动 Tomcat 时,只有在使用内部 Eclipse 浏览器时,我才能在 Eclipse 控制台中看到 servlet log() 打印。当从外部浏览器调用 JSP/servlet 时 - 我找不到日志打印(但在 Tomcat 日志目录中的文件中只有少数与访问相关的行)。
试图总结对我来说看起来很奇怪的技术问题——我很可能错过了一些有价值的部署/配置相关信息。请告知我做错了什么,哪个是更好/正确的配置,可以在从所有外部浏览器调用应用程序资源时共享会话数据。如果您需要有关我的配置/环境的任何其他详细信息 - 请询问。
欣赏