【发布时间】:2019-08-17 09:31:44
【问题描述】:
我正在设置 micronaut 应用程序,但部署失败并出现以下异常:
23:47:03.769 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Error instantiating bean of type [io.micronaut.web.router.DefaultRouter]
Message: Illegal field modifiers in class io/micronaut/web/router/RouteMatch: 0x82
Path Taken: new NettyHttpServer(NettyHttpServerConfiguration serverConfiguration,ApplicationContext applicationContext,[Router router],RequestArgumentSatisfier requestArgumentSatisfier,MediaTypeCodecRegistry mediaTypeCodecRegistry,NettyCustomizableResponseTypeHandlerRegistry customizableResponseTypeHandlerRegistry,StaticResourceResolver resourceResolver,ExecutorService ioExecutor,ThreadFactory threadFactory,ExecutorSelector executorSelector,Optional serverSslBuilder,List outboundHandlers,EventLoopGroupFactory eventLoopGroupFactory) --> new DefaultRouter([Collection builders])
io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [io.micronaut.web.router.DefaultRouter]
Message: Illegal field modifiers in class io/micronaut/web/router/RouteMatch: 0x82
Path Taken: new NettyHttpServer(NettyHttpServerConfiguration serverConfiguration,ApplicationContext applicationContext,[Router router],RequestArgumentSatisfier requestArgumentSatisfier,MediaTypeCodecRegistry mediaTypeCodecRegistry,NettyCustomizableResponseTypeHandlerRegistry customizableResponseTypeHandlerRegistry,StaticResourceResolver resourceResolver,ExecutorService ioExecutor,ThreadFactory threadFactory,ExecutorSelector executorSelector,Optional serverSslBuilder,List outboundHandlers,EventLoopGroupFactory eventLoopGroupFactory) --> new DefaultRouter([Collection builders])
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1492)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2143)
at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1829)
at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1809)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:987)
at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:981)
at io.micronaut.http.server.netty.$NettyHttpServerDefinition.build(Unknown Source)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1474)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2143)
at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1829)
at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1809)
at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:1006)
at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:577)
at io.micronaut.context.BeanLocator.findBean(BeanLocator.java:135)
at io.micronaut.runtime.Micronaut.start(Micronaut.java:71)
at io.micronaut.runtime.Micronaut.run(Micronaut.java:288)
at io.micronaut.runtime.Micronaut.run(Micronaut.java:274)
Caused by: java.lang.ClassFormatError: Illegal field modifiers in class io/micronaut/web/router/RouteMatch: 0x82
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at io.micronaut.web.router.DefaultRouteBuilder.buildRoute(DefaultRouteBuilder.java:392)
at io.micronaut.web.router.DefaultRouteBuilder.buildRoute(DefaultRouteBuilder.java:383)
at io.micronaut.web.router.DefaultRouteBuilder.GET(DefaultRouteBuilder.java:252)
at io.micronaut.management.endpoint.processors.ReadEndpointRouteBuilder.registerRoute(ReadEndpointRouteBuilder.java:61)
at io.micronaut.management.endpoint.processors.AbstractEndpointRouteBuilder.lambda$process$0(AbstractEndpointRouteBuilder.java:106)
at java.util.Optional.ifPresent(Optional.java:159)
at io.micronaut.management.endpoint.processors.AbstractEndpointRouteBuilder.process(AbstractEndpointRouteBuilder.java:101)
at io.micronaut.management.endpoint.processors.ReadEndpointRouteBuilder.process(ReadEndpointRouteBuilder.java:36)
at io.micronaut.management.endpoint.processors.AbstractEndpointRouteBuilder.process(AbstractEndpointRouteBuilder.java:46)
at io.micronaut.context.AnnotationProcessorListener.onCreated(AnnotationProcessorListener.java:89)
at io.micronaut.context.AnnotationProcessorListener.onCreated(AnnotationProcessorListener.java:45)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1523)
at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2475)
at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2397)
at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:844)
at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1087)
at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1695)
at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1082)
at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:961)
at io.micronaut.web.router.$DefaultRouterDefinition.build(Unknown Source)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1474)
... 17 common frames omitted
我们有 3 个环境:开发、测试和生产。它正在开发和测试中工作,但不在生产中。我们验证了环境变量和 jdk 版本。我们在云环境中,在 Dev、Test 和 Prod 中部署了相同的映像。
不适用
【问题讨论】:
-
生产环境中的 JDK/JRE 是否相同?
-
JDK 是一样的。我们找到了根本原因。 Dynatrace 版本不同。禁用后,部署成功