将Spring Web App从tomcat 5.5迁移到tomcat 6.0时出现问题

时间:2009-02-08 08:38:30

标签: java spring tomcat spring-security

我有一个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安装的差异并在此处发布进一步的更新。

感谢对这些家伙的回应。

3 个答案:

答案 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,没有足够的信息。尝试在应用程序中启用详细日志记录,并查看日志中是否有任何明显的内容。