我有一个使用servlet的简单web应用程序。我创建它作为一个maven项目,然后将其导入到eclipse(文件 - >导入 - >现有的Maven项目)maven + eclipse + tomcat:类没有发现异常
战争部署到tomcat 7正确。
但是,当我在Eclipse中创建一个tomcat 7服务器,然后在eclipse中启动tomcat时,我运行该应用程序时出现异常。
root cause
java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap
first.model.BeerExpert.<clinit>(BeerExpert.java:12)
first.servlet.BeerServlet.doPost(BeerServlet.java:26)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.ClassNotFoundException: com.google.common.collect.ImmutableMap
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
first.model.BeerExpert.<clinit>(BeerExpert.java:12)
first.servlet.BeerServlet.doPost(BeerServlet.java:26)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
是否有需要在eclipse/tomcat的做
注意任何特定的类路径设置:我能够运行mvn全新安装,它会创建jar文件。然后,当我将jar移动到tomcat(7)webapp目录并重新启动时,它工作得很好。
我不发布pom.xml的细节,因为应用程序本身工作正常。但是,它是需要在决议我可以发布它。
我们可以在pom文件中配置此设置吗? –
我有这个相同的问题,无法弄清楚两天有什么问题。我想我的情况非常独特,但我为了以防万一。对于没有被导出的项目,我去了Properties - > Project Facets和未选中的Utility Module。在Tomcat上干净并重新发布。那样做了。我觉得这只是一个奇怪的错误,但是为了以防万一,它可以帮助某人。 – DavidR
@DavidR,我一直在为此奋斗24小时,而你似乎是互联网上唯一一个使用该解决方案的人。谢谢!如果你尝试了上面的运气,没有运气,请给这个镜头。 – thomas88wp