外部JAR中的类的java.lang.ClassNotFoundException

时间:2013-06-25 19:26:17

标签: eclipse tomcat jar m2eclipse classnotfoundexception

我在Eclipse Java EE IDE for Web Developers中有一个maven项目。 运行Tomcat时,我收到的错误是我可以看到我已经包含

我的问题是 - 我是否因为Tomcat Apache而需要将这些JAR添加到其他地方?

错误:

  

SEVERE:Servlet / Resource抛出了load()异常   java.lang.ClassNotFoundException:org.odata4j.jersey.producer.resources.ODataApplication       在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)       在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)       at java.lang.Class.forName0(Native Method)       在java.lang.Class.forName(Class.java:171)       at com.sun.jersey.core.reflection.ReflectionHelper.classForNameWithException(ReflectionHelper.java:240)       at com.sun.jersey.core.reflection.ReflectionHelper.classForNameWithException(ReflectionHelper.java:220)       在com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:711)

以下是我图书馆的课程:

enter image description here

更新: 我的Web部署程序集如下所示: enter image description here

1 个答案:

答案 0 :(得分:1)

您看到的问题是由于tomcat正在查看错误的目录。目前很可能指向您项目的src / main / webapp目录。这与maven的工作原理并不相符。 Maven下载依赖项,但只会将它们包含在目标构建中。您需要让tomcat服务器查看target / myapp-0.0.1,或构建为war并以此方式部署。截至目前最简单的解决方案是使用tomcat插件。设置完成后,您可以使用嵌入式服务器,只需使用以下命令'mvn tomcat:run'。

Maven Tomcat Plugin Docs

更新:

我查看了属性设置,您实际上应该可以编辑项目的“Web部署程序集”设置(在项目属性下)。检查截图我是如何设置我的。注意如何映射Maven依赖项。 http://imgur.com/ofxryns