maven + eclipse + tomcat:类未找到异常

时间:2014-01-19 21:36:21

标签: eclipse maven tomcat

我有一个使用servlet的简单Web应用程序。我创建它作为maven项目,然后将其导入eclipse(文件 - >导入 - >现有的maven项目)

战争正确地部署到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 clean install并创建jar文件。然后,当我将jar移动到tomcat(7)webapp目录并重新启动它就可以了。

我没有发布pom.xml的详细信息,因为应用程序本身工作正常。无论如何,我需要在分辨率中发布它。

1 个答案:

答案 0 :(得分:39)

Tomcat & Spring Web - Class Not Found Exception org.springframework.web.context.ContextLoaderListener

在Project Explorer中右键单击您的Web项目 - &gt;选择“属性”。在项目属性下,选择“部署程序集”。

Deployment Assembly属性页面显示Eclipse将作为汇编工件发布到服务器的内容。您需要告诉Eclipse您希望发布所有Maven依赖项。

为此,单击“添加”按钮,然后选择“Java构建路径条目”。单击“下一步”,然后选择“Maven依赖项”。当Eclipse将项目发布到WST服务器时,这将把Maven依赖JAR文件发布到lib文件夹