more than one 'primary' bean found among candidates: [jacksonObjectMapper, objectMapper]

Blade 未结 2 2474
3027410400
3027410400 剑圣 2021-04-29 13:02

新建项目启动报错:


No qualifying bean of type 'com.fasterxml.jackson.databind.ObjectMapper' available: more than one 'primary' bean found among candidates: [jacksonObjectMapper, objectMapper]


Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.

2021-04-29 13:00:34.231 ERROR 19140 --- [           main] o.s.boot.SpringApplication               : Application run failed


org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'messageConfiguration' defined in URL [jar:file:/D:/java/maven/repository/org/springblade/blade-core-tool/2.8.0.RELEASE/blade-core-tool-2.8.0.RELEASE.jar!/org/springblade/core/tool/config/MessageConfiguration.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'com.fasterxml.jackson.databind.ObjectMapper' available: more than one 'primary' bean found among candidates: [jacksonObjectMapper, objectMapper]


at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:799)

at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:228)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1203)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)

at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)

at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747)

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)

at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:140)

at org.springblade.core.launch.BladeApplication.run(BladeApplication.java:50)

at cc.dfsoft.enesys.Enesys72Application.main(Enesys72Application.java:15)

Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'com.fasterxml.jackson.databind.ObjectMapper' available: more than one 'primary' bean found among candidates: [jacksonObjectMapper, objectMapper]

at org.springframework.beans.factory.support.DefaultListableBeanFactory.determinePrimaryCandidate(DefaultListableBeanFactory.java:1591)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.determineAutowireCandidate(DefaultListableBeanFactory.java:1551)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1282)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227)

at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:886)

at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:790)

... 19 common frames omitted


2条回答
  • 2021-04-29 13:21

    报错提示有两个bean重复了,名字为 jacksonObjectMapper, objectMapper

    BladeX内定义的为objectMapper,没有定义过jacksonObjectMapper,你确认一下业务工程是否在其他地方有定义导致了冲突

    作者追问:2021-04-29 17:36

    可以测试一下,用git上的代码就可以  BladeX-Biz  什么都没改,就是pom 里面加入了一个包

    org.springframework.cloudspring-cloud-starter-stream-rabbit

    就会报错的

    image.png


    作者追问:2021-04-29 17:45

     去掉@Primary 后可以了,但是不知道对整个项目的影响是什么


    image.png

    回答: 2021-04-29 17:51

    不会有影响,下版本我优化一下

    0 讨论(0)
  • 2021-04-29 16:22

    已经复现:

    只要项目引入:

    org.springframework.cloudspring-cloud-starter-stream-rabbit

    就报错,不引入就没事

    image.png

    image.png




    是否是因为工具包这里的问题?

    0 讨论(0)
提交回复