java - 错误:com.sun.crypto.provider.AESCipher $ General无法转换为javax.crypto.CipherSpi

标签 java gradle liferay paytm

您好,我在Liferay dxp项目中使用Paytm校验和依赖项

但我得到error :com.sun.crypto.provider.AESCipher$General cannot be cast to javax.crypto.CipherSpi
Gradle 特性:

dependencies {compile fileTree(dir: 'libs/', include: '*.jar') compileInclude name: 'paytmchecksum-1.1'}

PaytmUtil包含以下代码。
private static String getCheckSumPayTm(TreeMap<String, String> reqMap){

    CheckSumServiceHelper checkSumServiceHelper =  CheckSumServiceHelper.getCheckSumServiceHelper();

    String checksum = null;
    try {
        checksum =  checkSumServiceHelper.genrateCheckSum("paytmKey", reqMap.toString());
        log.info("PAYTM CHECKSUM ================== "  + checksum);
    } catch (Exception e) {
        e.printStackTrace();
        log.error("error :" + e.getMessage());
    }
    return checksum;
}

最佳答案

假设根据静态类层次结构,您希望com.sun.crypto.provider.AESCipher$Generaljavax.crypto.CipherSpi的有效子类,那么您正在处理类路径上的重复类-但是您会得到它们。

compileInclude是一个不错的选择,因为它可以在类路径中包含比您想要的更多的代码,即复制本应通过常规类加载机制生成的类。

不幸的是,此错误消息没有告诉您的是加载每个提到的类的类加载器。而且很可能是父类(super class)重复了。您通常可以将错误消息读取为

com.sun.crypto.provider.AESCipher$General cannot be cast to javax.crypto.CipherSpi loaded from classloader A - however, it could be cast to javax.crypto.CipherSpi from classloader B.



不幸的是,在这种情况下,您将不得不自己找到类加载器A和B,但是如果您在类路径上的任何位置查找CipherSpi的位置,则应该可以找到它。通常已经提供了它,您不应该自己带它。

关于java - 错误:com.sun.crypto.provider.AESCipher $ General无法转换为javax.crypto.CipherSpi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60872965/

相关文章:

android - 添加 phonegap-plugin-barcodescanner 后无法构建 cordova android projet

gradle - 无法清理Gradle项目

Liferay - 无需填充 liferay 数据库的身份验证

java - Liferay 门户组件 : how to make ajax call to serveResource Method with Parameter

java - 使用 EL <C :forEach> 输出 JCoTable 行

android - AAPT2 错误 : check logs for details: unknown element <action> found

java - JVM/CLR 源代码兼容语言选项

Liferay 6.2 如何显示存储在文档和媒体中的图像

java - WSL2 : Reloading Maven on IntelliJ -> NoClassDefFoundError on FileSystems$DefaultFileSystemHolder and HttpWagon

java - 如何使用Spring Boot登录/注销?