2 回答

TA貢獻1909條經驗 獲得超7個贊
關鍵點在堆棧跟蹤的底部:
org.springframework.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:336) ~[spring-core-5.0.10.RELEASE.jar!/:5.0.10.RELEASE]
[INFO] GCLOUD: ... 43 common frames omitted
[INFO] GCLOUD: Caused by: java.lang.ClassFormatError: Illegal method name "createConfiguration-tQynZQ0" in class com/hexigames/configurationservice/domain/game/GameConfigurationService$$EnhancerBySpringCGLIB$$76757398
[INFO] GCLOUD: at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_181]
[INFO] GCLOUD: at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[na:1.8.0_181]
換句話說,Spring 使用自定義類加載器按需生成類。此類使用帶有 - 的方法名稱。defineClass1類加載器中的方法會阻塞它。由于類加載器用于加載任何類,我唯一的假設是谷歌云以某種方式使用了調整后的類加載器。由于類加載器對安全性非常敏感,這是有道理的,但顯然您的 Kotlin 代碼對安全性不敏感。
根據 JVM 規范,該-字符不是 JVM 級別方法名稱中的非法字符:https : //docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.2。 2 . 因此,這似乎是谷歌云平臺中的一個錯誤。順便提一句。該字符在 Java 中是非法的,但 JVM 寬松得多。
添加回答
舉報