我已经设置了一个非常默认的apache2 / tomcat7服务器。
我使用Eclipse WTP使用jersey构建一个最小的servlet。 (刚刚下载了最新的球衣。)
当我将servlet部署到tomcat时,我在catalina.out文件中收到此错误:
INFO: validateJarFile(/var/lib/tomcat7/webapps/MetrixServer/WEB-INF/lib/javax.servlet-api-3.0.1.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
据我所知,这意味着我不应该将所有jars从jaxrs-ri的api / ext / lib目录复制到我的项目中。但是如果我把它们排除在外,应用程序会因为缺少其他类而崩溃。 (例如:java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer
)
所以,我显然在正确的位置没有正确的.jar文件,但是我没有找到任何关于哪些文件到哪里的好的指示!
答案 0 :(得分:0)
好的,终于明白了。有多个问题。
1)Tomcat在JVM 1.6下运行,我使用的其中一个库(来自Jersey)需要1.7。
2)我作为示例使用的web.xml来自于球衣1,但是我使用了球衣2 - 并且xml中使用的包名已经改变。
3)Eclipse不会让我使用1.7作为servlet,因为它只有1.6 java facet。在Facet代码找到1.7方面之前,我不得不从Eclipse中删除1.6 JRE。因此,请使用来自jersey的所有lib,但请确保您的web.xml中没有任何com.sun ....条目。