【问题标题】:Spring 4.0 with Tomcat 6: EL version conflictSpring 4.0 与 Tomcat 6:EL 版本冲突
【发布时间】:2014-02-19 05:34:47
【问题描述】:

根据migration guide,Spring 4.0 需要 4.3 或更高版本的 Hibernate Validator 和 6.0.33 或更高版本的 Tomcat。

Hibernate Validator 4.3 依赖于 EL 2.2 不能与 Tomcat 6.0.33 一起使用 EL 2.1。它会给出以下错误:

NoSuchMethodError: javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory)

我的应用部署在 Tomcat 6 中,我无权更新 EL 库。

在这种情况下,如何用Tomcat 6迁移到Spring 4.0?

【问题讨论】:

    标签: spring tomcat tomcat6 hibernate-validator spring-4


    【解决方案1】:

    Hibernate Validator 4.3 依赖于 EL 2.2 不适用于 Tomcat 6.0.33 自带 EL 2.1

    这是不正确的。 Hibernate Validator 5.x 依赖于 EL。您可以在此处找到有关如何让 Validator 5 在 Tomcat 上运行的更多信息 - http://hibernate.org/validator/faq/#does-hibernate-validator-5-x-work-with-tomcat-6。但是,它需要您更新库。

    对于 Hibernate Validator 4.3,不需要任何 EL 库。

    【讨论】:

    • 我的错误。该错误是由于 Spring 4 迁移而不是 Hibernate Validator 升级到 4.3。 Spring 4 的 spring-beans 和 spring-webmvc 依赖于 EL 2.2.4 版本。所以,现在我的问题是如何在 EL 2.1 附带的 Tomcat 6 上部署 Spring 4 应用程序?
    • 我创建了新问题,而不是针对上述问题修改现有问题。请查看here
    【解决方案2】:

    您可以通过分叉 Hibernate Validator 和 EL 2.2 将 Tomcat 6 与 Hibernate Validator 5.x 一起使用。在http://javaetmoi.com/2015/10/hibernate-validator-5-sur-conteneur-servlet-2-5/ 上查看更多信息

    【讨论】:

      猜你喜欢
      • 2011-05-01
      • 2012-09-23
      • 1970-01-01
      • 2015-02-23
      • 2018-01-24
      • 1970-01-01
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多