首页 > 解决方案 > Amazon Coretto 11、Spring Boot 和 PowerMock - 测试失败

问题描述

我有一个基于 java 的 Spring Boot 项目,该项目在必要时使用 PowerMock 模拟静态方法和构造函数调用自从升级到最新版本的 IntelliJ - 我需要使用高于 JDK 8 的 JDK 版本我移动到 Amazon Coretto,因为我想部署我的应用程序在 AWS Elastic Beanstalk 上的最新支持 JDK 当我升级并运行我的测试时,我开始遇到问题在关注这个线程之后 - https://github.com/java-decompiler/jd-gui/issues/187并使用它PowerMockIgnore 语法

@PowerMockIgnore("javax.management.", "com.sun.org.apache.xerces.", "javax.xml.", "org.xml.", "org.w3c.dom.", "com.sun.org.apache.xalan.", "javax.activation.*", "javax.xml.transform.*", "com.sun.org.apache.xalan.*")

我收到这个错误

java.lang.RuntimeException: java.lang.reflect.InaccessibleObjectException: Unable to make protected java.lang.Class jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(java.lang.String,boolean) throws java.lang.ClassNotFoundException accessible: module java.base does not "opens jdk.internal.loader" to unnamed module @d5ce97f
    at org.powermock.core.classloader.DeferSupportingClassLoader.findResource(DeferSupportingClassLoader.java:154)
    at java.base/java.lang.ClassLoader.findResource(ClassLoader.java:1342)
    at java.base/java.lang.Module.getResourceAsStream(Module.java:1575)
    at kotlin.reflect.jvm.internal.impl.serialization.deserialization.builtins.BuiltInsResourceLoader.loadResource(BuiltInsResourceLoader.java:27)
    at kotlin.reflect.jvm.internal.impl.descriptors.runtime.components.ReflectKotlinClassFinder.findBuiltInsData(ReflectKotlinClassFinder.kt:52)
    at kotlin.reflect.jvm.internal.impl.builtins.jvm.JvmBuiltInsPackageFragmentProvider.findPackage(JvmBuiltInsPackageFragmentProvider.kt:60)

这让我难倒了好几天。任何人都可以就我可以尝试的内容提供任何进一步的建议吗

问候达米安

标签: javaspring-bootunit-testingpowermock

解决方案


我找不到让 PowerMock 与 Java 11 一起使用的解决方案,因此我已将其从我的项目中删除


推荐阅读