Micronaut Clubs 微服务 运行 时间错误

Micronaut Clubs microservice run time error

我正在尝试 运行 这个 https://github.com/alvarosanchez/micronaut-workshop micronaut 研讨会示例与 JDK 11 和 Micronaut 1.0.2

更新了一些依赖,编译正常。当我 运行 它抛出以下错误时。

21:27:18.607 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Failed to inject value for parameter [objectMapper] of class: io.micronaut
.jackson.convert.ArrayNodeToArrayConverter

Path Taken: new ArrayNodeToArrayConverter([ObjectMapper objectMapper])
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [objectMapper] of class: io.micronaut.jackson.convert.ArrayNodeToAr
rayConverter

Path Taken: new ArrayNodeToArrayConverter([ObjectMapper objectMapper])
        at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:981)
        at io.micronaut.jackson.convert.$ArrayNodeToArrayConverterDefinition.build(Unknown Source)
        at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1329)
        at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2237)
        at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2165)
        at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:752)
        at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:522)
        at io.micronaut.context.DefaultBeanContext.getBeanRegistrations(DefaultBeanContext.java:313)
        at io.micronaut.context.DefaultApplicationContext.initializeTypeConverters(DefaultApplicationContext.java:339)
        at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:193)
        at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:2033)
        at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:156)
        at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:141)
        at io.micronaut.runtime.Micronaut.start(Micronaut.java:67)
        at io.micronaut.runtime.Micronaut.run(Micronaut.java:271)
        at io.micronaut.runtime.Micronaut.run(Micronaut.java:257)
        at io.micronaut.runtime.Micronaut$run.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:135)
        at clubs.Application.main(Application.groovy:8)
Caused by: io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type  [io.micronaut.jackson.convert.ArrayNodeToArrayConverter]

Message: Multiple possible bean candidates found: [io.micronaut.jackson.ObjectMapperFactory, io.micronaut.jackson.ObjectMapperFactory]
Path Taken: new ArrayNodeToArrayConverter([ObjectMapper objectMapper])
        at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1343)

我这里有我的代码https://github.com/sfgroups/micronaut-codes/tree/master/micronaut-workshop-ex02

如何解决此 运行 时间错误?

谢谢 SR

根据 https://github.com/sfgroups/micronaut-codes/blob/9013a3daeb544cbc040f42091c2ff7995385b6a4/micronaut-workshop-ex02/build.gradle#L29 处的配置,您的项目正在使用 Micronaut 1.0.2。

mavenBom 'io.micronaut:micronaut-bom:1.0.2'

https://github.com/sfgroups/micronaut-codes/blob/9013a3daeb544cbc040f42091c2ff7995385b6a4/micronaut-workshop-ex02/build.gradle#L56 你正在引入 1.0.0.RC2 版本的 discovery-client,它与 Micronaut 1.0.2 不兼容。

compile group: 'io.micronaut', name: 'discovery-client', version: '1.0.0.RC2'

您需要将该版本更新为 1.0.2,并且需要引用 micronaut-discovery-client 而不是 discovery-client(模块名称在 RC2 之后更改)。最简单的表达方式是这样的:

compile 'io.micronaut:micronaut-discovery-client'

修复该问题后,您会发现项目中存在其他问题,但以上内容修复了问题中描述的问题。

希望对您有所帮助。