soul网关学习之bootstrap启动报错(问题记录)

今天原本打算继昨天的步骤,继续探究bootstrap端的zookeeper数据同步机制,不过今天却在启动bootstrap的过程中,报了如下错误:

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-01-29 02:14:11.088 ERROR 59332 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'syncDataService' defined in class path resource [org/dromara/soul/spring/boot/sync/data/zookeeper/ZookeeperSyncDataConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.dromara.soul.sync.data.api.SyncDataService]: Factory method 'syncDataService' threw exception; nested exception is java.lang.IllegalStateException: No such application config! Please add <dubbo:application name="..." /> to your spring config.
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:656) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1338) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[spring-context-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) [spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
	at org.dromara.soul.bootstrap.SoulBootstrapApplication.main(SoulBootstrapApplication.java:37) [classes/:na]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.dromara.soul.sync.data.api.SyncDataService]: Factory method 'syncDataService' threw exception; nested exception is java.lang.IllegalStateException: No such application config! Please add <dubbo:application name="..." /> to your spring config.
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	... 19 common frames omitted
Caused by: java.lang.IllegalStateException: No such application config! Please add <dubbo:application name="..." /> to your spring config.
	at com.alibaba.dubbo.config.AbstractInterfaceConfig.checkApplication(AbstractInterfaceConfig.java:145) ~[dubbo-2.6.5.jar:2.6.5]
	at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:278) ~[dubbo-2.6.5.jar:2.6.5]
	at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) ~[dubbo-2.6.5.jar:2.6.5]
	at org.dromara.soul.plugin.alibaba.dubbo.cache.ApplicationConfigCache.build(ApplicationConfigCache.java:166) ~[classes/:na]
	at org.dromara.soul.plugin.alibaba.dubbo.cache.ApplicationConfigCache.initRef(ApplicationConfigCache.java:130) ~[classes/:na]
	at org.dromara.soul.plugin.alibaba.dubbo.subscriber.AlibabaDubboMetaDataSubscriber.onSubscribe(AlibabaDubboMetaDataSubscriber.java:45) ~[classes/:na]
	at org.dromara.soul.sync.data.zookeeper.ZookeeperSyncDataService.lambda$29(ZookeeperSyncDataService.java:342) ~[classes/:na]
	at java.util.ArrayList.forEach(ArrayList.java:1249) ~[na:1.8.0_60]
	at org.dromara.soul.sync.data.zookeeper.ZookeeperSyncDataService.lambda$28(ZookeeperSyncDataService.java:342) ~[classes/:na]
	at java.util.Optional.ifPresent(Optional.java:159) ~[na:1.8.0_60]
	at org.dromara.soul.sync.data.zookeeper.ZookeeperSyncDataService.cacheMetaData(ZookeeperSyncDataService.java:342) ~[classes/:na]
	at org.dromara.soul.sync.data.zookeeper.ZookeeperSyncDataService.lambda$4(ZookeeperSyncDataService.java:152) ~[classes/:na]
	at java.util.ArrayList.forEach(ArrayList.java:1249) ~[na:1.8.0_60]
	at org.dromara.soul.sync.data.zookeeper.ZookeeperSyncDataService.watchMetaData(ZookeeperSyncDataService.java:150) ~[classes/:na]
	at org.dromara.soul.sync.data.zookeeper.ZookeeperSyncDataService.<init>(ZookeeperSyncDataService.java:74) ~[classes/:na]
	at org.dromara.soul.spring.boot.sync.data.zookeeper.ZookeeperSyncDataConfiguration.syncDataService(ZookeeperSyncDataConfiguration.java:62) ~[classes/:na]
	at org.dromara.soul.spring.boot.sync.data.zookeeper.ZookeeperSyncDataConfiguration$$EnhancerBySpringCGLIB$$7afbc30f.CGLIB$syncDataService$0(<generated>) ~[classes/:na]
	at org.dromara.soul.spring.boot.sync.data.zookeeper.ZookeeperSyncDataConfiguration$$EnhancerBySpringCGLIB$$7afbc30f$$FastClassBySpringCGLIB$$b990876b.invoke(<generated>) ~[classes/:na]
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363) ~[spring-context-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	at org.dromara.soul.spring.boot.sync.data.zookeeper.ZookeeperSyncDataConfiguration$$EnhancerBySpringCGLIB$$7afbc30f.syncDataService(<generated>) ~[classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_60]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_60]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_60]
	at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_60]
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
	... 20 common frames omitted

根据断点调试,发现是bootstrap从zookeeper同步数据时报的错,把zookeeper里面相关结点删掉,再次重启bootstrap就没有报错,后面重新重启了一下alibaba dubbo测试工程,然后再启动bootstrap,依旧报错,接着在网上搜索一番,试了下面几招,都没奏效

  1. 在bootstrap的yml文件中添加如下配置:
dubbo:
   application:
      name: soul-bootstrap
  1. 在bootstrap的resources目录下新增dubbo.properties,内容如下:
dubbo.application.name=soul-bootstrap
  1. 复制了alibaba dubbo测试工程下的spring-dubbo.xml配置文件到bootstrap,内容修改如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://code.alibabatech.com/schema/dubbo
       http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <dubbo:application name="soul-bootstrap"/>

    <dubbo:registry address="zookeeper://localhost:2181"/>

    <dubbo:protocol name="dubbo" port="20888"/>
</beans>
  1. 在bootstrap的pom.xml里面打开apache dubbo的依赖,关掉alibaba dubbo的依赖。

以上几招尽数失败,为何???明天再研究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值