11

我在我的 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 的 catalina jar 中不可用,它是 7.0.40

在 openshift 上“升级”tomcat 容易吗?或者,如果有人可以提出解决方案,我们将不胜感激。

非常感谢,

4

2 回答 2

7

这对我有用:

        <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 服务器版本中运行它。

于 2014-04-21T01:43:54.467 回答
0

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

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

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

于 2014-12-03T13:05:15.073 回答