小编Jur*_*jak的帖子

Mockito,Java 9和java.lang.ClassNotFoundException:sun.reflect.ReflectionFactory

我的项目是Wildfly 13应用程序,它使用Mockito测试库.该应用程序不使用Java 9模块结构.只要服务器在Java 8上运行,测试工作正常,但是一旦我们升级到Java 9,它们就会失败并出现以下异常:

org.objenesis.ObjenesisException: java.lang.ClassNotFoundException: sun.reflect.ReflectionFactory from [Module "test.war" from Service Module Loader]
at test.war//org.objenesis.instantiator.sun.SunReflectionFactoryHelper.getReflectionFactoryClass(SunReflectionFactoryHelper.java:63)
at test.war//org.objenesis.instantiator.sun.SunReflectionFactoryHelper.newConstructorForSerialization(SunReflectionFactoryHelper.java:37)
at test.war//org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator.<init>(SunReflectionFactoryInstantiator.java:41)
at test.war//org.objenesis.strategy.StdInstantiatorStrategy.newInstantiatorOf(StdInstantiatorStrategy.java:68)
at test.war//org.objenesis.ObjenesisBase.getInstantiatorOf(ObjenesisBase.java:94)
at test.war//org.objenesis.ObjenesisBase.newInstance(ObjenesisBase.java:73)
at test.war//org.mockito.internal.creation.instance.ObjenesisInstantiator.newInstance(ObjenesisInstantiator.java:19)
at test.war//org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker.createMock(SubclassByteBuddyMockMaker.java:47)
at test.war//org.mockito.internal.creation.bytebuddy.ByteBuddyMockMaker.createMock(ByteBuddyMockMaker.java:25)
at test.war//org.mockito.internal.util.MockUtil.createMock(MockUtil.java:35)
at test.war//org.mockito.internal.MockitoCore.mock(MockitoCore.java:68)
at test.war//org.mockito.Mockito.mock(Mockito.java:1895)
at test.war//org.mockito.Mockito.mock(Mockito.java:1804)
at test.war//application code...
Run Code Online (Sandbox Code Playgroud)

我尝试了各种选项和组合:

  • 使用Java 8,9,10进行编译
  • 使用最新版本的OpenJDK 9和10运行
  • 设置编译器和vm选项--add-modules jdk.unsupported和--add-exports jdk.unsupported/sun.reflect = ALL-UNNAMED"

总是一样的错误.我没有想法.

的结果 --show-module-resolution

root jdk.javadoc jrt:/jdk.javadoc
root jdk.jdi jrt:/jdk.jdi
root jdk.jshell jrt:/jdk.jshell
root jdk.sctp jrt:/jdk.sctp
root jdk.xml.dom jrt:/jdk.xml.dom
root jdk.jsobject jrt:/jdk.jsobject
root jdk.unsupported jrt:/jdk.unsupported
root jdk.scripting.nashorn …
Run Code Online (Sandbox Code Playgroud)

java mockito wildfly java-9

6
推荐指数
2
解决办法
1691
查看次数

标签 统计

java ×1

java-9 ×1

mockito ×1

wildfly ×1