【问题标题】:ClassNotFoundException , but class is available in maven dependencyClassNotFoundException ,但类在 Maven 依赖项中可用
【发布时间】:2013-10-07 12:09:20
【问题描述】:

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

提前致谢

更新:

环境:-

  • Eclipse 朱诺。
  • Maven M2E 插件
  • 雄猫 7

我在 eclipse 中创建了一个 maven 项目,并在方面更改中将其转换为动态 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

【问题讨论】:

  • 请提供更多细节:相关的依赖声明、引用代码等
  • 你试过maven->更新项目配置了吗?

标签: maven tomcat classnotfoundexception


【解决方案1】:

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

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

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

【讨论】:

  • 我也试过这个“尝试从 Eclipse 中创建一个新的 Maven 项目,然后选择 maven-archetype-webapp 作为原型。Eclipse 将为您设置所有内容,包括 Maven 依赖项的类路径。”并尝试更新 maven 项目。仍然没有任何进展。我想如果我在 lib 文件夹中添加类,它会起作用,但我需要一些其他解决方法
  • 这是因为如果我手动添加罐子,那么 Maven 就没有任何用途
  • 提示创建“maven-archetype-webapp”是最好的广告
【解决方案2】:

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

我认为您还需要“jersey-servlet”工件

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

如果没有,请尝试以下操作:

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

【讨论】:

  • 是的,它已添加。我认为我在将 maven 项目转换为 Web 应用程序项目时出错了。我创建了一个Maven项目,然后右键-属性->项目方面->'selected'动态模块版本,还在命令行中给出了mvn eclipse:eclipse -Dwtpversion=2.0
猜你喜欢
  • 2021-11-28
  • 2012-09-30
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多