【问题标题】:Apache CXF geronimo-servlet_3.0_spec-1.0.jar - jar not loaded having Tomcat's servlet jarApache CXF geronimo-servlet_3.0_spec-1.0.jar - 没有加载 Tomcat 的 servlet jar 的 jar
【发布时间】:2014-05-24 20:44:33
【问题描述】:

我的项目中包含 Apache CXF jar 时遇到问题(我使用 Eclipse 作为 IDE),运行 Tomcat 后得到以下信息:

INFO: validateJarFile(/home/USER/programming/tools/apache-tomcat-7.0.50/webapps/abosi/WEB-INF/lib/geronimo-servlet_3.0_spec-1.0.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class

这是因为 Apache CXF 将 geronimo-servlet_3.0_spec-1.0.jar 作为应用程序的一部分部署到 WEB_INF/lib 目录,但 Tomcat 已经在 TOMCAT_ROOT/./lib/servlet-api.jar 中实现了它的 servlet。

如何防止这种情况发生?

【问题讨论】:

  • 您能说说您在尝试从 cxf jar 中删除它时遇到了什么问题吗?
  • 它不在 CXF jar 中。它位于 CXF 库的 lib 文件夹中(如果我从那里删除它,我将无法在 tomcat 中加载我的应用程序。)

标签: java tomcat servlets jar cxf


【解决方案1】:

您可以通过在 pom.xml 中明确排除 geronimo jar 来消除此消息,如下所示:

    ....
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-bundle</artifactId>
        <version>3.0.0-milestone2</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-servlet_3.0_spec</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    ....

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    我已设法通过从Project Properties -> Java Build Path

    Order and export 选项卡中删除 Apache CXF 来解决此问题

    并从$CATALINA_HOME/bin/APP_NAME/lib/geronimo-servlet_3.0_spec-1.0.jar$CATALINA_HOME/webapps/abosi/WEB-INF/lib/activemq-all-5.9.0.jar 中删除.jars

    编辑

    在尝试并部署了几次之后,这似乎不是解决方案。那些.jars 仍然出现在这个目录中。有什么想法吗?

    【讨论】:

    • 如果应用程序具有基于 2.3 或 2.5 的 servlet,并且相应的战争中缺少 jar 文件,则添加它们并部署。从 tomcat 7/lib 文件夹中删除 servlet-api.jar 将不允许 tomcat 启动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 2012-06-15
    • 2011-03-05
    相关资源
    最近更新 更多