一尘不染

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

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的详细信息,因为应用程序本身运行正常。但是id需要它在分辨率中,我可以发布它。


阅读 363

收藏
2020-06-16

共1个答案

一尘不染

Tomcat和Spring Web-找不到类异常org.springframework.web.context.ContextLoaderListener

在“项目资源管理器”中右键单击您的Web项目->选择“属性”。在项目属性下,选择“部署程序集”。

DeploymentAssembly属性页面显示了将由Eclipse作为组合工件发布到服务器的内容。您需要告诉Eclipse您也希望发布所有Maven依赖项。

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

2020-06-16