当前位置: 首页 > 知识库问答 >
问题:

java.lang.NoClassDefFoundError运行我的项目时出错

艾和通
2023-03-14

我一直在努力让它工作,我想我可以使用一些帮助。我正在做一个Java项目,其中pom.xml有一堆依赖项,其中一些依赖项本身间接依赖于这个jar:com.sun.jersey: jersey-core: 1.17.1如下:

<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.0.1</version>
</dependency>

我在pom中需要这个特殊的jar,因为我想使用jax rs api中的新特性:javax。ws。rs:javax。ws。rs api:2.0。问题是,当我构建项目时,会出现以下错误:

Found duplicate classes in [com.sun.jersey:jersey-core:1.17.1,javax.ws.rs:javax.ws.rs-api:2.0] :
[WARNING]   javax.ws.rs.ApplicationPath
[WARNING]   javax.ws.rs.Consumes
[WARNING]   javax.ws.rs.CookieParam 
[WARNING]   javax.ws.rs.DELETE
[WARNING]   javax.ws.rs.DefaultValue
[WARNING]   javax.ws.rs.Encoded
[WARNING]   javax.ws.rs.FormParam
[WARNING]   javax.ws.rs.GET
[WARNING]   javax.ws.rs.HEAD
[WARNING]   javax.ws.rs.HeaderParam
...
..

我试图通过排除com来解决这个问题。太阳jersey:jersey core:1.17.1来自通过检查依赖关系树包含它的依赖关系。

<dependency>
  <groupId>com.sun.jersey</groupId>
  <artifactId>jersey-client</artifactId>
  <version>1.0.1</version>
  <scope>test</scope>
  <exclusions>
    <exclusion>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-core</artifactId>
    </exclusion>
  </exclusions>
</dependency> 

现在该项目构建良好,但当我尝试运行它时,我得到了这个错误:

    java.lang.NoClassDefFoundError: com/sun/jersey/core/util/FeaturesAndProperties
at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.7.0_51]
at java.lang.Class.privateGetDeclaredMethods(Class.java:2531) ~[na:1.7.0_51]
at java.lang.Class.getDeclaredMethods(Class.java:1855) ~[na:1.7.0_51]
at com.google.inject.internal.ProviderMethodsModule.getProviderMethods
    (ProviderMethodsModule.java:81) ~[guice-3.0.jar:na]
at com.google.inject.internal.ProviderMethodsModule.configure
    (ProviderMethodsModule.java:73) ~[guice-3.0.jar:na]
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223) 
    ~[guice-3.0.jar:na]
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:232)
    ~[guice-3.0.jar:na]
at com.google.inject.spi.Elements.getElements(Elements.java:101) ~[guice-3.0.jar:na]
at com.google.inject.spi.Elements.getElements(Elements.java:92) ~[guice-3.0.jar:na]

似乎需要球衣核心,但我该如何解决这个问题?

共有3个答案

江棋
2023-03-14

泽西是JAX-RS的参考实现,因此您不需要最新版本的JAX-RS API(javax.ws.rs:javax.ws.rs-api: 2.0),而需要最新版本的泽西2.8(见https://jersey.java.net/)。

贡威
2023-03-14

对我来说,这实际上意味着我在某种程度上混合了一些东西,并且使用了

$ mvn dependency:list | grep jersey
[INFO]    com.sun.jersey:jersey-client:jar:1.11:compile
[INFO]    com.sun.jersey:jersey-core:jar:1.0.2:compile

(泽西岛内部冲突1.x)

督瑞
2023-03-14

不能混用JAX-RS/Jersey版本

>

  • Jerseyversion 1是JAX-RS 1的参考实现JerseyVersion1使用com。太阳jersey组/包前缀。

    Jerseyversion 2是JAX-RS 2的参考实现Jersey版本2使用组织。玻璃鱼。jersey组/包前缀

    如果您的类路径上同时有两个Jersey版本或两个JAX-RS版本,您将得到大量的NoClassDefFoundErrorNoSuchMethodError或类似版本。

    如果可能,请使用JAX-RS/泽西版本2

  •  类似资料:
    • 问题内容: 我一直在努力使它起作用,我认为我可以使用一些帮助。我正在一个Java项目中,其中pom.xml具有一堆依赖关系,其中一些依赖关系本身间接依赖于此jar : 我需要在pom中使用这个特定的jar,因为我想使用jax-rs api:中的新功能 。问题是在构建项目时出现此错误: 我试图通过排除依赖项来解决此问题,这是通过检查依赖关系树来实现的。 现在项目构建良好,但是当我尝试运行它时,出现此

    • 我试图将我的android项目连接到php上的数据库,我的代码中没有错误,但当我试图在手机上运行我的应用程序时,它不起作用 这就是Json_解析 我知道,这是我在日志中的错误 e/ViewRootImpl: sendUserAction事件()mView==null

    • D:\gatsby站点 盖茨比起动器-default@0.1.0开发D:\gatsby站点 盖茨比发展 错误 加载插件“gatsby plugin sharp”时出现问题。也许你需要安装它的软件包?使用--verbose查看实际错误。 错误#10226 CONFIG 找不到在“D:\gatsby site\gatsby config.js”中声明的“gatsby plugin sharp”插件。

    • grailsVersion=3.3.0有一个问题。M1和gradlewrappersion=3.0。每当我运行该项目时,我都会遇到以下错误。 |解析依赖项。请稍候。。。 配置成功 总时间: 13.543秒|运行应用程序...2017-05-29 22:08:46.634错误 --- [ 主]o.s.boot.SpringApplication :应用程序启动失败 java.lang.NoClass

    • 正在运行分级任务“Assemble Debug”...appdata/local/pub/cache/git/getflutter-a714b9b006b2208c983b8ecbeb21302f8ccacc13/lib/components/appbar/gf_appbar.dart:312:45:错误:找不到方法:“scaffold.maybeof”。正在运行分级任务“assemble deb

    • 下面是我的Gridle文件,我尝试了stackoverflow other的问题answare中所有可能的解决方案,但仍然显示相同的结果。 错误: 错误:(3)错误检索项目的父:没有找到与给定名称'android: Text外观匹配的资源。材料。小部件。按钮。无国界。有色'。 网格: 这里是使用XML的地方: 将minsdkversion更改为11时出现其他一些错误 错误:任务“:app:proc