我有一个spring web应用程序,它在tomcat 5.5上运行良好。我试图将相同的Web应用程序部署到tomcat 6容器并遇到一些问题。
我遇到的两个主要问题是为jstl配置容器并使spring安全登录正常工作。
我相信我已经通过在$ CATALINA_HOME / lib目录中包含来自here的jstl-1.2.jar库来解决了jstl配置问题(尽管它确实很难实现找出如何使这个工作)。
现在的主要问题是,当我尝试使用基于表单的身份验证登录时,当登录表单提交到“j_spring_security_check”时,我收到HTTP 404错误。
我已根据spring安全文档在web.xml文件中设置了过滤器,但似乎tomcat没有按预期调用它。
我希望有人可以在这里分享他们的经验,因为我在配置中肯定遗漏了一些基本内容。
感谢。
更新:根据此处的回复进行故障排除时,我最终做的一件事就是下载tomcat 6.0.18的新副本并确保我拥有jstl-1.2.jar WEB-INF / lib目录中的文件。有趣的是,现在应用程序似乎工作正常。
我有点难过但我现在会尝试追踪导致错误的两个tomcat安装的差异并在此处发布进一步的更新。
感谢对这些家伙的回应。
答案 0 :(得分:1)
如果您使用maven,则需要jstl:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
答案 1 :(得分:1)
根据您提供的信息,很难分辨出错误。
常见的共享库用于Tomcat 5.x及更早版本的common / lib;现在它们属于/ lib目录。
就个人而言,我更喜欢在我的部署的WEB-INF / lib中尽可能多地放置,因为我不想依赖于以特定方式设置服务器。如果类加载器可以在我的WAR文件中找到它需要的所有JAR,我很高兴。
Tomcat 5.x和6.x都使用JSTL版本1.2 JAR,因此这很常见。这是改变的位置。我建议使用WEB-INF / lib中需要的JAR构建WAR文件。
如果您使用的是以前称为ACEGI的模块Spring Security,请确保您也可以使用这些JAR。
HTTP 404 - 确定它不仅仅是部署或URL问题吗?
尝试通过将其注释掉配置文件并重新启动来关闭Spring安全性。如果其他一切都很好,你的应用程序应该会出现。然后你会知道你必须专心。如果没有,您可以继续搜索其他错误。
答案 2 :(得分:0)
我同意duffymo,没有足够的信息。尝试在应用程序中启用详细日志记录,并查看日志中是否有任何明显的内容。