异常解决篇:spring cloud stream rabbitMq配置错误,导致无法启动
2017-11-14 13:24
756 查看
异常信息
org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'eurekaAutoServiceRegistration': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method impleme 4000 ntation!) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:216) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1078) at org.springframework.context.event.ApplicationListenerMethodAdapter.getTargetBean(ApplicationListenerMethodAdapter.java:283) at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:253) at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:177) at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:140) at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:399) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347) at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:991) at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:958) at org.springframework.cloud.context.named.NamedContextFactory.destroy(NamedContextFactory.java:76) at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:272) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554) at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:961) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523) at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.destroySingletons(FactoryBeanRegistrySupport.java:230) at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:968) at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1030) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:556) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) at com.dx.asst.customer.AsstCustomerApplication.main(AsstCustomerApplication.java:21) 2017-11-14 12:45:53.166 INFO [bootstrap,,,] 67268 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closed 2017-11-14 12:45:53.169 INFO [bootstrap,,,] 67268 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2017-11-14 12:45:53.203 INFO [bootstrap,,,] 67268 --- [ main] utoConfigurationReportLoggingInitializer : Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 2017-11-14 12:45:53.411 ERROR [bootstrap,,,] 67268 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: A component required a bean named 'SYNC_XGT_USER_UPDATED' that could not be found. Action: Consider defining a bean named 'SYNC_XGT_USER_UPDATED' in your configuration.
问题分析
其实这个错误就是没有配置@EnableBinding(value = { XXXProcessor.class }),而却在监听类上配置了@StreamListener(“SYNC_XGT_USER_UPDATED”)导致的,错误比较低级,但是介于spring cloud stream网上资料较少,就把错误粘贴出来,也许能帮到你使用spring cloud stream配置注意事项
这里注意的是使用spring cloud stream 时一定要注意三处配置:定义Channel接口时,注意@Input标记下的方法返回值是SubscribableChannel类用来接收消息渠道定义,@Output标记的方法下返回值MessageChannel类用户生产消息,定义好后需要使用@EnableBinding(value={xxx.class})配置开启。
在application.yml(当然你可以是.properties文件)配置你的channel,其实这里对于rabbitmq来说即使是在配置Bind,其下一般配置三个参数destination、group、content-type 对于rabbitmq,destination就是交换机名称,group就是队列(队列名字会变成destination+group的值),content-type用来指定数据交互的格式类型了,如果你想配置使用路由配置
spring:cloud:stream:rabbit: bindings:你的消息接收的Channel名字: consumer:bindingRoutingKey:路由值
定义你的监听类,在方法上使用@StreamListener(“你的消息接收的Channel名字”),在监听类上加上@Component注解
好了,就先说这么多,后面我们会写单独的连载文章介绍关于spring cloud stream rabbitMq的使用,如果你在使用spring cloud stream rabbit时有什么不清楚,可以留言或加关注私聊我,很愿意为你解答。
相关文章推荐
- Windows下PHP安装路径配置错误导致Apache无法启动的解决方法
- apache端口被异常占用导致无法启动的解决方法
- RHEL上fstab配置错误导致不能启动的解决方法
- spring配置文件xsi:schemaLocation无法解析导致启动失败的解决方案
- apache配置虚拟主机,如果该文件配置错误,可能导致apache无法启动
- 解决FileZilla Server因路径错误导致无法启动问题详细图文教程
- Spring配置文件xsi:schemaLocation无法解析导致启动失败的解决方案 转!classpath:/org/springframework/
- Win Server 2008中SqlServer 2008 无法打开错误日志文件导致无法启动的解决方法
- MySql重装或者重新配置数据库实例时遇到“本地计算机无法启动Mysql服务”错误的解决方法
- Spring配置文件xsi:schemaLocation无法解析导致启动失败的解决方案
- 解决linux内核配置成runtime后,无法启动的问题(自己添加的lcd代码的问题导致)
- 由于计算机磁盘硬件配置出现问题,导致 Windows 无法启动的解决方法 由于计算机磁盘硬件配置出现问题,导致 Windows 无法启动
- SpringMVC异常总结:启动tomcat时出错,无法正取加载spring配置文件
- 错误解决-----Tomcat环境变量配置完成,但是cmd输入startup无法启动
- 错误初始化参数导致无法启动的解决办法
- eclipse在异常关闭后,导致无法启动workspace问题的解决
- redhat /etc/fstab配置错误导致系统无法启动
- vmware Selinux配置错误,导致无法启动虚拟机
- eclipse在异常关闭后,导致无法启动workspace问题的解决
- 修复错误配置fstab文件导致系统无法正常启动