【问题标题】:Problem migrating Spring Web App from tomcat 5.5 to tomcat 6.0将 Spring Web App 从 tomcat 5.5 迁移到 tomcat 6.0 的问题
【发布时间】:2010-10-06 05:46:29
【问题描述】:

我有一个在 tomcat 5.5 上运行良好的 Spring Web 应用程序。我尝试将相同的 Web 应用程序部署到 tomcat 6 容器并遇到了一些问题。

我遇到的两个主要问题与为 jstl 配置容器和让 spring 安全登录正常工作有关。

我相信我已经解决了 jstl 配置问题,方法是将 here 中的 jstl-1.2.jar 库包含在 $CATALINA_HOME/lib 目录中(尽管它确实看起来很奇怪,很难找到如何让它工作)。

现在的主要问题是,当我尝试使用基于表单的身份验证登录时,当登录表单提交到“j_spring_security_check”时出现 HTTP 404 错误。

我已经根据 spring 安全文档在 web.xml 文件中设置了过滤器,但似乎 tomcat 没有按预期调用它。

我希望有人可以在这里分享他们的经验,因为我肯定在我的配置中缺少一些基本的东西。

谢谢。

更新:虽然根据此处的回复进行故障排除,但我最终做的一件事是下载一个新的 tomcat 6.0.18 副本并确保我拥有 jstl-1.2.jar WEB-INF/lib 目录中的文件。有趣的是,现在该应用似乎运行良好。

我有点难过,但我现在将尝试找出导致错误的两个 tomcat 安装的差异,并在此处发布进一步的更新。

感谢这些人的回复。

【问题讨论】:

    标签: java spring tomcat spring-security


    【解决方案1】:

    如果你使用maven,你需要jstl:

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
            <scope>runtime</scope>
        </dependency>
    

    【讨论】:

      【解决方案2】:

      根据您提供的信息,很难判断出了什么问题。

      在 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 文件。

      如果您使用的是 Spring Security(以前称为 ACEGI 的模块),请确保您也有可用的这些 JAR。

      HTTP 404 - 确定不只是部署或 URL 问题?

      尝试通过将 Spring 安全性从配置文件中注释掉并重新启动来关闭它。如果其他一切正常,您的应用程序应该会立即启动。然后你就会知道你必须专注于。如果没有,您可以继续搜索还有什么问题。

      【讨论】:

        【解决方案3】:

        我同意 duffymo,没有足够的信息。尝试在您的应用程序中打开详细日志记录,看看日志中是否有任何明显的内容。

        【讨论】:

          猜你喜欢
          • 2011-05-15
          • 1970-01-01
          • 2020-08-05
          • 1970-01-01
          • 1970-01-01
          • 2021-07-25
          • 1970-01-01
          • 2012-06-11
          • 2019-04-29
          相关资源
          最近更新 更多