我遇到问题,我的项目中包含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实现。
我该怎样防止这种情况?
答案 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
并从.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
仍出现在此目录中。有什么想法吗?