Springboot有时会发生以下错误:
导致: java.lang.NoClassDefFoundError:无法初始化类java.lang.NoClassDefFoundError
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的信息如下:
发布于 2021-12-20 08:21:59
啊,请试着搜索日志,以前有可能发生过ExceptionInInitializerError,所以这次JVM会直接抛出NoClassDefFoundError,因为上次失败了。
需要获取原始ExceptionInInitializerError的调用堆栈(如果存在的话)以解决此问题。
相关代码和链接
ProviderConfig$ProviderLoader是在OpenJDK 11中定义的,因此不太可能引发OpenJDK classpath问题。NoClassDefFoundError的定义。感谢@oldpeculier和@jared发布于 2021-12-29 01:55:35
对于这个问题,不太清楚为什么会发生。为了解决这个问题。我们可以手动使用Security.addSecurity方法再次加载jca或类似组件。就像BouncyCastle。现在对我来说很好。
https://stackoverflow.com/questions/70418023
复制相似问题