ClassNotFoundException,但类在maven依赖项中可用

时间:2013-10-07 12:09:21

标签: maven tomcat classnotfoundexception

我真的被困在一个重大局势中。我在maven依赖中有一个类,也可以在类中引用但在运行服务器时显示ClassNotFoundException。

提前致谢

更新

环境: -

  • Eclipse Juno。
  • Maven M2E插件
  • Tomcat 7

我在eclipse中创建了一个maven项目,并在facet更改中将其转换为动态Web项目 - 并在pom.xml中添加了以下内容并给出了mvn eclipse:eclipse -Dwtpversion = 2.0

 <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-server</artifactId>
            <version>1.8</version>
        </dependency>

已下载包含com.sun.jersey.spi.container.servlet.ServletContainer类的可用jar文件

但是在运行服务器时 - java.lang.ClassNotFoundException:com.sun.jersey.spi.container.servlet.ServletContainer

2 个答案:

答案 0 :(得分:1)

首先,我建议你使用最新版本的Eclipse(现在是4.3开普勒),因为它内置了m2e插件,并且对Maven提供了更好的支持。您不再需要手动将Maven Dependency添加到项目类路径中。

尝试从Eclipse中创建一个新的Maven项目,然后选择maven-archetype-webapp作为原型。 Eclipse将为您设置所有内容,包括Maven depdencies的类路径。

每当修改POM.xml时,请确保更新类路径,但大多数情况下这是由m2e插件自动完成的。查看Eclipse下部的Markers选项卡,看看是否有这样的问题,如果您看到类似“Maven问题,项目配置不是最新”的内容,请右键单击您的项目并选择Maven-&gt;更新项目

答案 1 :(得分:0)

首先,确保您添加了正确的依赖项:

我认为你还需要“jersey-servlet”神器

然后,确保将Maven依赖项添加到Java构建路径中?

如果没有,请尝试以下方法:

  1. 打开项目属性并选择Java Build path
  2. 点击“添加图书馆”
  3. 选择“Maven托管依赖关系”