Apache CXF geronimo-servlet_3.0_spec-1.0.jar - jar没有加载Tomcat的servlet jar

时间:2014-05-24 20:44:33

标签: java tomcat servlets jar cxf

我遇到问题,我的项目中包含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实现。

我该怎样防止这种情况?

2 个答案:

答案 0 :(得分:4)

您可以通过在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>
    ....

希望这有帮助!

答案 1 :(得分:0)

我已设法通过从Project Properties - &gt;中的订单和导出标签中删除Apache CXF来解决此问题。 Java Build Path

enter image description here

并从.jar$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

编辑

尝试并部署几次后,似乎 NOT 解决方案。那些.jars仍出现在此目录中。有什么想法吗?