我遇到了几个从第一眼就看不到的问题。这个故事非常简单,但我想解决方案背后是一些真正的配置/部署问题/不一致。
我已经定义了一个JSP和两个servlet。 JSP在会话中放置了一些内容,servlet应该获取数据并对其进行操作。主要症状是,当在Chrome和Firefox中查看JSP时,servlet看不到会话数据。有趣的是,当使用Eclipse内部浏览器时以及使用Internet Explorer(在Win7上工作)时,JSP / servlet会共享数据。
这里有一些关于本地配置的一些信息(以及后续症状)以及(我认为存在问题):我在c:\ labs \ eclipse下安装了Eclipse(Helios)在c:\ labs \ tomcat下解压缩Tomcat(7.0.12)。我还安装了启动Tomcat的Sysdeo插件。
首先,当我使用Sysdeo Eclipse插件按钮启动Tomcat然后尝试从外部浏览器访问某些与应用程序相关的URL时 - 找到主Tomcat页面,但不是应用程序JSP /页面。但是,当我使用“播放/运行”Eclipse按钮启动Tomcat时(当选择Eclipse Web项目中的某个JSP页面时) - 然后我可以看到呈现的JSP页面两者< / em>来自Eclipse内部浏览器和来自任何外部浏览器。这两种发射模式有什么区别?
其次,当通过“播放/运行”Eclipse按钮启动Tomcat,并从内部Eclipse浏览器或外部Internet Explorer浏览器调用JSP和servlet时, all 数据将被共享正确的JSP和servlets。但是(仅针对相同的启动模式)如果我尝试从外部Chrome / Firefox浏览器访问JSP / servlet - 那么找到JSP / servlet,但数据似乎不能通过http会话共享(打印会话ID)并验证它是正确的)。
第三,当我通过“付费/运行”按钮启动Tomcat时,只有在使用内部Eclipse浏览器时,才能在Eclipse控制台中看到servlet log()打印。从外部浏览器调用JSP / servlet时 - 我找不到日志打印(但只有少数与访问相关的行位于Tomcat日志目录中。)
试图总结一下对我来说很奇怪的技术问题 - 我很可能会错过一些有价值的部署/配置相关信息。请告诉我我做错了什么,哪个是更好/正确的配置,允许在从所有外部浏览器调用应用程序资源时共享会话数据。如果您需要有关我的配置/环境的任何其他详细信息 - 请询问。
欣赏
答案 0 :(得分:0)
确保您使用的是Eclipse for Java EE developers,而不是Eclipse for Java开发人员。它已经内置了一个Tomcat服务器插件。 Sysdeo插件已经很老了,你根本不需要它,如果这是所有罪魁祸首之后我不会感到惊讶。
至于使用内部Eclipse浏览器而不是普通的webbrowser运行JSP / Servlet,我自己对内部浏览器有不好的体验,我不建议将其用于“快速测试”以外的其他操作。但是,它不与其他浏览器共享会话是正常行为。无论如何,它们不共享相同的浏览器实例。会话不是特定于计算机的,而是特定于浏览器的。
我只是使用EE提供的插件在Eclipse中集成Tomcat,通过服务器属性启动和停止它(通过右键单击JSP / Servlet并选择运行不 >或者某事)并使用真正的webbrowser访问页面。为了正确地开始使用Eclipse和Tomcat开发JSP / Servlet,我强烈建议您使用Coreservlets.com教程。在servlets wiki page的底部,您可以找到几个直接链接。