java - 由于不同的模块,javax.crypto.CipherSpi 的 Classcast 异常
问题描述
我正在将一个应用程序移至使用加密的 Java 11。当我尝试运行测试时,出现以下错误。
java.lang.ClassCastException:
class com.sun.crypto.provider.AESCipher$General
cannot be cast to class javax.crypto.CipherSpi
(com.sun.crypto.provider.AESCipher$General is in module
java.base of loader 'bootstrap';
javax.crypto.CipherSpi is in unnamed module of loader
org.powermock.core.classloader.javassist.JavassistMockClassLoader@4c1d9d4b)
我不明白它的含义或如何解决它。
解决方案
经过一些有用的指导后,我能够追踪到仅在使用 @RunWith(PowerMockRunner.class) 时才发生的问题。为了解决这个问题,我添加了 @PowerMockIgnore({"javax.crypto.*"}) 注释。这解决了所有错误,测试现在按预期工作。
推荐阅读
- javascript - Node.js:复选框未将数据保存在数据库中
- c++ - 无法同时创建两个 GLFW 窗口
- ios - WkWebview 中的 UIMenucontroller 放置问题
- c# - Soap 响应被截断(SoapUi 返回正确响应)
- java - 为了将 listAll 用于 Firebase 存储,我需要什么?
- reactjs - 我可以用哈希或随机字符串制作每个类名吗?
- c++ - 如何在 iOS 中集成 PortAudio?
- postgresql - docker - postgres upgrade 11 to 12 postmaster issue
- ios - 无法从 iOS 中的 PHAssets 访问 /var/mobile/Media/PhotoData/Sync/100SYNCD/ 文件夹中的媒体文件?
- sql - 我有 3 个表,需要独占左连接