【问题标题】:apache tomcat catalina as maven dependency for CORS filterapache tomcat catalina 作为 CORS 过滤器的 maven 依赖项
【发布时间】:2014-05-03 07:15:32
【问题描述】:

我在我的 web 应用程序中使用 org.apache.catalina.filters.CorsFilter。所以我指定了maven依赖

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-catalina</artifactId>
    <version>7.0.50</version>
</dependency>

现在,如果我说范围是“提供”或“运行时”,服务器不会启动,因为

java.lang.ClassNotFoundException: org.apache.catalina.filters.CorsFilter

这个类在 jbossews/lib 7.0.40 的 catalina jar 中不可用

在 openshift 上“升级”tomcat 容易吗?或者如果有人可以提出解决方案,非常感谢。

非常感谢,

【问题讨论】:

  • 我已经开始使用来自 com.thetransactioncompany 的 CORS 过滤器并达到我的目的。但我仍然想知道上述问题的解决方案。

标签: apache maven tomcat openshift catalina


【解决方案1】:

这对我有用:

        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-catalina</artifactId>
            <version>7.0.42</version>
            <scope>provided</scope>
        </dependency>

尝试 7.0.50 也有效。你能仔细检查一下周围没有竞争的 jar 文件版本吗?也许有一个旧版本没有真正被 JVM 使用的类。在 Linux 下,“ls -l /proc/$CATALINA_PID/fd”可以显示正在使用的 jar 文件。

还要确保在足够新的 Tomcat 服务器版本中运行它。

【讨论】:

  • 我在一个普通的 webapp 中使用 Tomcat 7.0.37 来到这里,但是上面的截图最初对我不起作用。问题是 您至少需要 Tomcat 7.0.41 才能使用 CORS 过滤器,正如您在 tomcat.apache.org/oldnews-2013.html 的 7.0.41 更改日志中看到的那样
【解决方案2】:

您可以将 jar 添加到您的存储库并修改 .openshift/config/catalina.properties 以让 tomcat 看到它:

shared.loader=${catalina.home}/../app-root/runtime/repo/_your_jar_folder_

您也可以使用 common.loader - 查找 tomcat 的 refs 以了解差异。

【讨论】:

    猜你喜欢
    • 2013-05-15
    • 2014-08-14
    • 2018-12-02
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    相关资源
    最近更新 更多