Springboot偶尔会出现以下错误:
原因:java. lang. NoClassDefFoundError:无法初始化类sun. security. jca. ProviderConfig $ProviderLoader
at java.base/sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:244)
at java.base/sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:238)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:238)
at java.base/sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:218)
at java.base/sun.security.jca.ProviderList.getProvider(ProviderList.java:266)
at java.base/sun.security.jca.ProviderList$ServiceList.tryGet(ProviderList.java:511)
at java.base/sun.security.jca.ProviderList$ServiceList$1.hasNext(ProviderList.java:565)
at java.base/javax.crypto.SecretKeyFactory.nextSpi(SecretKeyFactory.java:301)
at java.base/javax.crypto.SecretKeyFactory.<init>(SecretKeyFactory.java:121)
at java.base/javax.crypto.SecretKeyFactory.getInstance(SecretKeyFactory.java:168)
at com.kingbase8.shaded.com.ongres.scram.common.ScramMechanisms.saltedPassword(ScramMechanisms.java:155)
at com.kingbase8.shaded.com.ongres.scram.common.ScramFunctions.saltedPassword(ScramFunctions.java:59)
at com.kingbase8.shaded.com.ongres.scram.client.ScramSession$ClientFinalProcessor.<init>(ScramSession.java:196)
at com.kingbase8.shaded.com.ongres.scram.client.ScramSession$ClientFinalProcessor.<init>(ScramSession.java:163)
at com.kingbase8.shaded.com.ongres.scram.client.ScramSession$ServerFirstProcessor.clientFinalProcessor(ScramSession.java:130)
JDK信息如下:
enter image description here
3条答案
按热度按时间mwecs4sa1#
啊,请您试着查找一下日志,有可能以前发生过
ExceptionInInitializerError
,所以这次JVM直接抛出NoClassDefFoundError
,因为上次失败了。需要获取原始
ExceptionInInitializerError
的调用堆栈(如果存在)才能修复此问题。相关代码和链接
ProviderConfig$ProviderLoader
是在OpenJDK 11内部定义的,因此不太可能是Javaclasspath
问题NoClassDefFoundError
的定义。感谢@oldpeculier和@jaredercv8c1e2#
对于这个问题不太清楚为什么会发生。为了解决这个问题。我们可以手动使用安全。addSecurity方法再次加载jca或类似的组件。像BouncyCastle。现在它为我工作得很好。
kgsdhlau3#
我使用的是Java11,而项目是使用Java1.8构建的。一旦我切换到Java1.8,它就可以正常工作了