【发布时间】:2014-02-08 23:19:56
【问题描述】:
我有一个使用 servlet 的简单网络应用程序。我将它创建为一个 maven 项目,然后将其导入 eclipse(文件 -> 导入 -> 现有的 maven 项目)
war 已正确部署到 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 的详细信息,因为应用程序本身运行良好。但是,在解决方案中需要它,我可以发布它。
【问题讨论】: