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

如何解决“java.lang.NoClassDefFoundError:io/reactivex/rxjava3/core/Observer”

贡烨烁
2023-03-14

我试图使用testNG运行suite,但我遇到了一个错误:我在这个网站和web上搜索了一些关于这个问题的信息,但没有成功。

[RemoteTestNG] detected TestNG version 7.4.0
java.lang.NoClassDefFoundError: io/reactivex/rxjava3/core/Observer
    at resources.ExtentReporterNG.getReportObject(ExtentReporterNG.java:14)
    at ShufersalMiron.Sprod.Listeners.<init>(Listeners.java:22)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
    at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:350)
    at java.base/java.lang.Class.newInstance(Class.java:645)
    at org.testng.internal.InstanceCreator.newInstance(InstanceCreator.java:30)
    at org.testng.TestNG.addListeners(TestNG.java:964)
    at org.testng.TestNG.initializeConfiguration(TestNG.java:924)
    at org.testng.TestNG.initializeEverything(TestNG.java:1012)
    at org.testng.remote.support.RemoteTestNG6_12.initialize(RemoteTestNG6_12.java:22)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:98)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
Caused by: java.lang.ClassNotFoundException: io.reactivex.rxjava3.core.Observer
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 17 more

测试

<?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
    <suite name="Suite">
    <listeners>
    <listener class-name="ShufersalMiron.Sprod.Listeners"/>
    </listeners>
    <test name="Test1">
    <classes>
    <class name="ShufersalMiron.Sprod.PA_Coupons"/>
    </classes>
    </test> <!-- Test -->
    <test  name="Test2">
    <classes>
    <class name="ShufersalMiron.Sprod.PA_SupermeCoins"/>
    </classes>
    </test> <!-- Test -->
    </suite> <!-- Suite -->

我在网上寻找答案,但没有成功。

有人能帮我解决这个问题吗?

共有1个答案

须峰
2023-03-14

这个问题似乎与TestNG无关。

它只是出现在TestNG生命周期中,所以错误中提到了TestNG。

抛出错误的行是:

at resources.ExtentReporterNG.getReportObject(ExtentReporterNG.java:14)

这是您的项目类,但从ExtentReporterNG名称,我猜您正在使用

https://github.com/extent-framework/extentreports-java生成报告的工具。

以及错误消息:

"java.lang.NoClassDefFoundError: io/reactivex/rxjava3/core/Observer"

这意味着问题与io有关。reactivex。rxjava3依赖关系。

extentreports javapom中具有这种依赖性。xml

https://github.com/extent-framework/extentreports-java/blob/master/pom.xml

<dependency>
    <groupId>io.reactivex.rxjava3</groupId>
    <artifactId>rxjava</artifactId>
    <version>3.0.4</version>
</dependency>

结论

我相信您在项目中还有其他依赖项,它有另一个版本的io.reactivex,最终解析的依赖项不包含io/reactivex/rxjava3/core/观察员类。

因此,我建议将这种依赖性显式地添加到项目pom中。

<dependency>
    <groupId>io.reactivex.rxjava3</groupId>
    <artifactId>rxjava</artifactId>
    <version>3.0.4</version>
</dependency>
 类似资料:
  • 我正在尝试将一些服务器代码从.NET4.7迁移到.NET Core3.1,这样我们就可以在Linux主机上运行了。 有两个使用SOAP连接的服务。其中一个移植时没有任何更改,但另一个在使用WSDL文件导入时出现错误: http://uat.risc.enexusrental.co.uk/soap/dividualservice.php?wsdl 我不是SOAP专家,只使用过通过导入WSDL文件生成

  • http://reactivex.io/intro.html Rx介绍 ReactiveX的历史 ReactiveX是Reactive Extensions的缩写,一般简写为Rx,最初是LINQ的一个扩展,由微软的架构师Erik Meijer领导的团队开发,在2012年11月开源,Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流,Rx库支持.NET、JavaScrip

  • hyperf/reactive-x 组件提供了 Swoole/Hyperf 环境下的 ReactiveX 集成。 ReactiveX 的历史 ReactiveX 是 Reactive Extensions 的缩写,一般简写为 Rx,最初是 LINQ 的一个扩展,由微软的架构师 Erik Meijer 领导的团队开发,在 2012 年 11 月开源,Rx 是一个编程模型,目标是提供一致的编程接口,帮

  • RxPY 是 Reactive Extensions 的 Python 版本。

  • 问题内容: 我正在尝试编写简单的Java代码,以在控制台上显示MongoDB集合。我在类路径中添加了mongodb-driver-3.0.0.jar。 但是,当我尝试执行代码时,它在数据库连接行给了我以下错误: 线程“主”中的异常java.lang.NoClassDefFoundError:com.montan.app.MongoDbJdbc.main(MongoDbJdbc.java:12)上的

  • 问题内容: 我试图通过我的Web项目上的applet访问客户端的临时目录。 当我自己运行小程序时,它毫无问题地得到了。 当我尝试使用javascript并调用applet方法在我的项目上获取它时,我在javascript控制台上运行。当我尝试读取temp目录下的文件时,我也遇到同样的异常。 这正是我所看到的: 怎么解决? 问题答案: 最简单的解决方案是对applet进行签名。