Java 内联类在openJdk上生成奇怪的名称
嘿, 我正在用kotlin构建一个spring boot应用程序,希望使用内联类。我制作了一个spring数据存储库,其方法如下:Java 内联类在openJdk上生成奇怪的名称,java,spring-boot,kotlin,inline,Java,Spring Boot,Kotlin,Inline,嘿, 我正在用kotlin构建一个spring boot应用程序,希望使用内联类。我制作了一个spring数据存储库,其方法如下: 趣味格比(名称:GameName) 其中GameName是一个内联类 内联类游戏名(val值:String) 一切都在本地运行,我运行的是JDK1.8.0_181-b13。但当我将它部署到谷歌云时,spring boot应用程序并没有启动。谷歌云似乎正在运行OpenJDK1.8.0_181 当我在本地反编译代码时,它如下所示: 公共游戏配置实体getBy_
趣味格比(名称:GameName)
其中GameName是一个内联类
内联类游戏名(val值:String)
一切都在本地运行,我运行的是JDK1.8.0_181-b13。但当我将它部署到谷歌云时,spring boot应用程序并没有启动。谷歌云似乎正在运行OpenJDK1.8.0_181
当我在本地反编译代码时,它如下所示:
公共游戏配置实体getBy_00UsoVY/*$FF是:getBy-00UsoVY*/(@NotNull String gameName,@NotNull UUID id){…}
但在谷歌云上,我得到了以下错误:
原因:java.lang.ClassFormatError:非法的方法名“getByName MZoZWhM”
因此,它似乎在本地使用了。
,而在谷歌云上使用了-
,并且-
在方法名称中不是有效的字符
还有其他人有这个吗
完整堆栈跟踪:
[INFO]GCLOUD:org.springframework.beans.factory.BeanCreationException:创建名为“gameConfigurationService”的bean时出错,该名称在URL[jar:file:/app.jar!/BOOT-INF/classes!/com/hexigames/configurationservice/domain/game/gameConfigurationService.class]中定义:bean初始化失败;嵌套异常为org.springframework.aop.framework.aopconfigeexception:无法生成类com.hexigames.configurationservice.domain.game.GameConfigurationService的CGLIB子类:此问题的常见原因包括使用最终类或不可见类;嵌套异常为org.springframework.cglib.core.CodeGenerationException:java.lang.reflect.InvocationTargetException-->null
[INFO]GCLOUD:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581)~[spring-beans-5.0.10.RELEASE.jar!/:5.0.10.RELEASE]
[INFO]GCLOUD:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)~[spring-beans-5.0.10.RELEASE.jar!/:5.0.10.RELEASE]
[INFO]GCLOUD:org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)~[spring-beans-5.0.10.RELEASE.jar!/:5.0.10.RELEASE]
[INFO]GCLOUD:org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)~[spring-beans-5.0.10.RELEASE.jar!/:5.0.10.RELEASE]
[INFO]GCLOUD:org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)~[spring-beans-5.0.10.RELEASE.jar!/:5.0.10.RELEASE]
[INFO]GCLOUD:org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)~[spring-beans-5.0.10.RELEASE.jar!/:5.0.10.RELEASE]
[INFO]GCLOUD:org.springframework.beans.factory.support.DefaultListableBeanFactory.PreInstanceSingleton(DefaultListableBeanFactory.java:759)~[spring-beans-5.0.10.RELEASE.jar!/:5.0.10.RELEASE]
[INFO]GCLOUD:org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)~[spring-context-5.0.10.RELEASE.jar!/:5.0.10.RELEASE]
[INFO]GCLOUD:org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548)~[spring-context-5.0.10.RELEASE.jar!/:5.0.10.RELEASE]
[INFO]GCLOUD:org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)~[spring-boot-2.0.6.RELEASE.jar!/:2.0.6.RELEASE]
[INFO]GCLOUD:org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)[spring-boot-2.0.6.RELEASE.jar!/:2.0.6.RELEASE]
[INFO]GCLOUD:org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386)[spring-boot-2.0.6.RELEASE.jar!/:2.0.6.RELEASE]
[INFO]GCLOUD:org.springframework.boot.SpringApplication.run(SpringApplication.java:307)[spring-boot-2.0.6.RELEASE.jar!/:2.0.6.RELEASE]
[INFO]GCLOUD:org.springframework.boot.SpringApplication.run(SpringApplication.java:1242)[spring-boot-2.0.6.RELEASE.jar!/:2.0.6.RELEASE]
[INFO]GCLOUD:org.springframework.boot.SpringApplication.run(SpringApplication.java:1230)[spring-boot-2.0.6.RELEASE.jar!/:2.0.6.RELEASE]
[INFO]GCLOUD:com.hexigames.configurationservice.ConfigurationServiceApplicationKt.main(ConfigurationServiceApplication.kt:12)[classes!/:0.0.1-SNAPSHOT]
[INFO]GCLOUD:at sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:1.8.0_181]
[INFO]GCLOUD:at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)~[na:1.8.0\u 181]
[INFO]GCLOUD:at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)~[na:1.8.0181]
[INFO]GCLOUD:at java.lang.reflect.Method.invoke(Method.java:498)~[na:1.8.0\u 181]
[INFO]GCLOUD:org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)[app.jar:0.0.1-SNAPSHOT]
[INFO]GCLOUD:org.springframework.boot.loader.Launcher.launch(Launcher.java:87)[app.jar:0.0.1-SNAPSHOT]
[INFO]GCLOUD:org.springframework.boot.loader.Launcher.launch(Launcher.java:50)[app.jar:0.0.1-SNAPSHOT]
[INFO]GCLOUD:org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)[app.jar:0.0.1-SNAPSHOT]
[INFO]GCLOUD:原因:org.springframework.aop.framework.aopconfigeexception:无法生成类com.hexigames.configurationservice.domain.game.GameConfigurationService的CGLIB子类:此问题的常见原因包括使用最终类或不可见类;嵌套异常为org.springframework.cglib.core.CodeGenerationException:java.lang.reflect.InvocationTargetException-->null
[INFO]GCLOUD:org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:208)~[spring-aop-5.0.10.RELEASE.ja
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]