You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[TARS] start application fail Error creating bean with name 'xxController': Unsatisfied dependency expressed through field ; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '' defined in file : Initialization of bean failed; nested exception is com.qq.tars.rpc.exc.CommunicatorConfigException: |error occurred on create proxy, servant endpoint is empty! locator =|communicator id=585e1bc33a5a4766aa7e4c92f0dbbda0
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name '': Unsatisfied dependency expressed through field ''; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '' defined in file : Initialization of bean failed; nested exception is com.qq.tars.rpc.exc.CommunicatorConfigException: |error occurred on create proxy, servant endpoint is empty! locator =|communicator id=585e1bc33a5a4766aa7e4c92f0dbbda0
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:587)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:373)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1350)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:580)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:503)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name : Initialization of bean failed; nested exception is com.qq.tars.rpc.exc.CommunicatorConfigException: error occurred on create proxy, servant endpoint is empty! locator =|communicator id=585e1bc33a5a4766aa7e4c92f0dbbda0
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:589)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:503)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:584)
... 17 more
Caused by: com.qq.tars.rpc.exc.CommunicatorConfigException: error occurred on create proxy, servant endpoint is empty! locator =|communicator id=585e1bc33a5a4766aa7e4c92f0dbbda0
at com.qq.tars.client.ObjectProxyFactory.updateServantEndpoints(ObjectProxyFactory.java:162)
at com.qq.tars.client.ObjectProxyFactory.getObjectProxy(ObjectProxyFactory.java:62)
at com.qq.tars.client.ServantProxyFactory.getServantProxy(ServantProxyFactory.java:49)
at com.qq.tars.client.Communicator.stringToProxy(Communicator.java:82)
at com.qq.tars.client.Communicator.stringToProxy(Communicator.java:68)
at com.qq.tars.spring.bean.CommunicatorBeanPostProcessor.processFields(CommunicatorBeanPostProcessor.java:86)
at com.qq.tars.spring.bean.CommunicatorBeanPostProcessor.postProcessBeforeInitialization(CommunicatorBeanPostProcessor.java:43)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:424)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1700)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581)
... 26 more
Process finished with exit code -1
在Controller中通过@TarsClient注入其他服务的代理对象:
Controller在启动初始化时报错:
在生成UserPrx代理对象时,此时UserServer可能还未启动,所以
TarsClientBeanPostProcessor.processFields
中Object proxy = communicator.stringToProxy(field.getType(), config);
更新UserServer节点时因为节点为空而报错,导致注入失败。如果UserServer启动的情况下,再启动本服务的话是正常的。但是服务之间的启动顺序是无法保证的,而且可能存在互相依赖的情况。是否可以将代理对象改为延迟加载,比如调用的时候才加载?
The text was updated successfully, but these errors were encountered: