• 解决项目启动报错--maven依赖冲突


    这个问题之前出现过一次,和同事讨论了2天,解决了。后来合 了一下master的分支,问题又出现了,但是忘记了解决方法。现在记录一下免得时间长了又忘记了

    问题描述:

    Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'buyerSubjectCollector': Unsatisfied dependency expressed through field 'subjectValueCollects'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'subjectValueCollects' defined in class path resource [bbq-common.xml]: Cannot resolve reference to bean 'identifyBuyerSubjectQuery' while setting bean property 'objectSubjectQueryList' with key [0]; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'identifyBuyerSubjectQuery': Unsatisfied dependency expressed through field 'uicReadServiceClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicReadServiceClient' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Cannot resolve reference to bean 'uicExtraReadServiceClient' while setting bean property 'uicExtraReadServiceClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicExtraReadServiceClient' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Cannot resolve reference to bean 'uicCacheService' while setting bean property 'uicCacheService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicCacheService' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: UICCacheService-initTair error , unit:null forceNodeGroup: null
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:586)
        at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:364)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1268)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:756)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:123)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:666)
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:353)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:300)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1082)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1071)
        at com.wdk.commercial.Application.main(Application.java:32)
        ... 6 more
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'subjectValueCollects' defined in class path resource [bbq-common.xml]: Cannot resolve reference to bean 'identifyBuyerSubjectQuery' while setting bean property 'objectSubjectQueryList' with key [0]; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'identifyBuyerSubjectQuery': Unsatisfied dependency expressed through field 'uicReadServiceClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicReadServiceClient' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Cannot resolve reference to bean 'uicExtraReadServiceClient' while setting bean property 'uicExtraReadServiceClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicExtraReadServiceClient' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Cannot resolve reference to bean 'uicCacheService' while setting bean property 'uicCacheService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicCacheService' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: UICCacheService-initTair error , unit:null forceNodeGroup: null
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:382)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:157)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1533)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1280)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
        at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:211)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1131)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1059)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:583)
        ... 25 more
    Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'identifyBuyerSubjectQuery': Unsatisfied dependency expressed through field 'uicReadServiceClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicReadServiceClient' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Cannot resolve reference to bean 'uicExtraReadServiceClient' while setting bean property 'uicExtraReadServiceClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicExtraReadServiceClient' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Cannot resolve reference to bean 'uicCacheService' while setting bean property 'uicCacheService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicCacheService' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: UICCacheService-initTair error , unit:null forceNodeGroup: null
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:586)
        at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:364)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1268)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
        ... 40 more
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicReadServiceClient' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Cannot resolve reference to bean 'uicExtraReadServiceClient' while setting bean property 'uicExtraReadServiceClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicExtraReadServiceClient' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Cannot resolve reference to bean 'uicCacheService' while setting bean property 'uicCacheService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicCacheService' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: UICCacheService-initTair error , unit:null forceNodeGroup: null
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1533)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1280)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
        at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:211)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1131)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1059)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:583)
        ... 50 more
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicExtraReadServiceClient' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Cannot resolve reference to bean 'uicCacheService' while setting bean property 'uicCacheService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicCacheService' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: UICCacheService-initTair error , unit:null forceNodeGroup: null
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1533)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1280)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
        ... 63 more
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uicCacheService' defined in file [/Users/bitidawang/Downloads/software/workspace/wdk-commercial/wdk-commercial-core-start/target/classes/spring/spring-wdk-commercial-uic.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: UICCacheService-initTair error , unit:null forceNodeGroup: null
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1630)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
        ... 73 more
    Stopping available components
    Caused by: java.lang.RuntimeException: UICCacheService-initTair error , unit:null forceNodeGroup: null
        at com.taobao.uic.common.cache.TairCacheFactory.initTair(TairCacheFactory.java:68)
        at com.taobao.uic.common.cache.TairCacheFactory.getInstance(TairCacheFactory.java:42)
        at com.taobao.uic.common.cache.DefaultUICCacheService.initTair(DefaultUICCacheService.java:214)
        at com.taobao.uic.common.cache.DefaultUICCacheService.init(DefaultUICCacheService.java:163)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1759)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1696)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1626)
        ... 80 more
    Caused by: java.lang.RuntimeException: init uicCacheManager failed  isNewVersion :true
        at com.taobao.uic.common.cache.uictair.MultiClusterTairProxyImpl.init(MultiClusterTairProxyImpl.java:107)
        at com.taobao.uic.common.cache.TairCacheFactory.initTair(TairCacheFactory.java:61)
        ... 90 more
    Caused by: java.lang.RuntimeException: com.taobao.tair.impl.mc.ShieldTairManager was loaded by com.taobao.pandora.boot.loader.ReLaunchURLClassLoader@6da9dc6, it should be loaded by Pandora Container. Can not load this fake sdk class. please refer to xxxx(这里是文档地址,公司保密协议不好透露) for the solution.
        at com.taobao.tair.impl.mc.ShieldTairManager.<init>(ShieldTairManager.java)
        at com.taobao.uic.common.cache.tair.ShieldTairCacheManager.init(ShieldTairCacheManager.java:32)
        at com.taobao.uic.common.cache.uictair.MultiClusterTairProxyImpl.init(MultiClusterTairProxyImpl.java:103)
        ... 91 more

    解决办法先放在前面:

    快捷键搜索com.taobao.tair.impl.mc.ShieldTairManager,仔细看,出现在两个包里,按照自己的业务,在所有子模块中根据maven help插件搜索,排除掉其中一个。

    解决路程:

      看到报错一大堆,前面的基本都不用管,看最后报错比较简短的那一句。

    com.taobao.tair.impl.mc.ShieldTairManager was loaded by com.taobao.pandora.boot.loader.ReLaunchURLClassLoader@6da9dc6, it should be loaded by Pandora Container. Can not load this fake sdk class. please refer to xxxx(这里是文档地址,公司保密协议不好透露) for the solution

    意思是说ShieldTairManager 这个类是Pandora Container容器加载的,请参考某某文档解决,
    复制下来文档链接在浏览器打开,发现没有权限,阿里的权限控制是做的比较严格的,到处都限制,好吧,那就不看文档了。
    按照需要Pandora Container容器加载的思路,脑海里出现各种假设,难道这个类被别的人修改过了?难道本地启动不起来了吗?难道我本地启动的不是Pandora Container容器吗?
    思路错了就会把你带到无尽的深渊当中。
    无意当中拷贝了com.taobao.tair.impl.mc.ShieldTairManager,快捷键在项目中搜索,发现这个类出现在两个jar包中,
    按照之前本地debug段点调试,发现一个奇怪的现象,

    
    

      什么?构造器中构造一个对象时你直接给我抛出一个异常??抛出的异常和项目启动时候抛出的异常是一样的,com.taobao.tair.impl.mc.ShieldTairManager was loaded by..........

      看看ShieldTairManager出现在哪个jar包中,发现出现在一个A包中和一个B包中,B包是自己的外部依赖C引进来的,是需要的,那就把A包从项目中排除吧,

      好吧,搜索各个子模块,去掉A包,项目本地启动,完美解决。 

     小经验总结:

      1.看异常看最后一个报错,最后一个一般才是错误的主要原因。注意是一般。

      2.思路错了会带你到无尽的深渊,一条路走不通试试另一条路。

      3.一个类出现在两个jar包中,会出现奇怪的问题,必须排除掉其中一个或者改变依赖顺序。

      4.要坚韧,要有耐心。






  • 相关阅读:
    Android五天乐(第三天)ListFragment与ViewPager
    Thinking in States
    红黑树上的连接操作
    [LeetCode][Java] Binary Tree Level Order Traversal
    使用IR2101半桥驱动电机的案例
    HDU 4782 Beautiful Soup(模拟)
    C语言之基本算法38—格式化输出10000以内的全部完数
    远在美国的凤姐为何选择回国理財?
    2014-7-20 谁还认得这几本书?
    360在线笔试---反思两道题
  • 原文地址:https://www.cnblogs.com/jiliunyongjin/p/14019460.html
Copyright © 2020-2023  润新知