首页 文章

spring amqp中的CannotLoadBeanClassException

提问于
浏览
0

Spring 天amqp我很新 . 我正在尝试运行示例应用程序,并且发送方代码正在成功运行但是侦听器代码引发了错误 . 请帮忙 . 请在下面的链接中找到代码 - https://www.journaldev.com/11713/spring-amqp-rabbitmq-example

抛出的错误 -

异常在线程“主要” org.springframework.beans.factory.CannotLoadBeanClassException:找不到类[com.tp.spring.amqp.rabbit.SpringAMQPRabbitAyncListener]与名 beans “asyncListener”在类路径资源定义[springamqp-rabbt-侦听器的context.xml];嵌套异常是java.lang.ClassNotFoundException:com.tp.spring.amqp.rabbit.SpringAMQPRabbitAyncListener

我在运行SpringAMQPRabbitListenerContainer.java时遇到的错误如下所示 -

SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder” . SLF4J:默认为无操作(NOP) Logger 实现SLF4J:有关更多详细信息,请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder . 线程“main”中的异常org.springframework.context.ApplicationContextException:无法启动bean'myListenerContainer';嵌套异常是org.springframework.amqp.AmqpIllegalStateException:在org.springframework.context.support.DefaultLifecycleProcessor.access $ 1的org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:170)上的侦听器启动时发生致命异常(DefaultLifecycleProcessor)的.java:154)在org.springframework.context.support.DefaultLifecycleProcessor $ LifecycleGroup.start(DefaultLifecycleProcessor.java:339)在org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:143)在org.springframework . context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:108)atg.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:926)org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java: 467)org.springframework.context.support.ClassPathXmlApplicationContext . (ClassPathXmlApplicationContex org.springframework.amqp:t.java:139)通过在org.springframework.context.support.ClassPathXmlApplicationContext(ClassPathXmlApplicationContext.java:83)在com.tp.spring_amqp_rabbitmq.SpringAMQPRabbitListenerContainer.main(SpringAMQPRabbitListenerContainer.java:9)引起的 . AmqpIllegalStateException:org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doStart(SimpleMessageListenerContainer.java:333)在org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.start(AbstractMessageListenerContainer.java:360)上的侦听器启动时发生致命异常org.springframework.amqp.rabbit.listener.FatalListenerStartupException:org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:167)... 9被越来越引起无法为听众准备队列 . 队列不存在或者代理不允许我们使用它 . at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:228)atg.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer $ AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:516)at java.lang.Thread .run(Unknown Source)由com.rabbitmq.client.impl.AMQChannel.wrap的com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:124)中的java.io.IOException引起:AMQChannel.java: 120)在com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:142)在com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:996)在com.rabbitmq.client.impl.recovery .AutorecoveringChannel.queueDeclarePassive(AutorecoveringChannel.java:364)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java . org.springframework.amqp.rabbit.con上的lang.reflect.Method.invoke(未知来源) nection.CachingConnectionFactory $ CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:348)在com.sun.proxy . $ Proxy2.queueDeclarePassive(来源不明)在org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:213) ... 2更多引起:com.rabbitmq.client.ShutdownSignalException:通道错误;协议方法:#method(reply-code = 404,reply-text = NOT_FOUND - vhost'/'中没有队列'tpQueue',class-id = 50,com.rabbitmq.utility.impl.AMQChannel上com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36)的com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)中的method-id = 10) $ blockingRpcContinuation.getReply(AMQChannel.java:443)位于com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:263)的com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:136) . .. 11更多引起:com.rabbitmq.client.ShutdownSignalException:通道错误;协议方法:com.rabbitmq.client.impl中的#method(reply-code = 404,reply-text = NOT_FOUND - vhost'/'中没有队列'tpQueue',class-id = 50,method-id = 10) . 来自com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:162)的com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:340)的ChannelN.asyncShutdown(ChannelN.java:509) .rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:109)at com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:643)at com.rabbitmq.client.impl.AMQConnection.access $ 300( AMQConnection.java:47)at com.rabbitmq.client.impl.AMQConnection $ MainLoop.run(AMQConnection.java:581)... 1更多

1 回答

  • 1

    你真的应该确定类 com.tp.spring.amqp.rabbit.SpringAMQPRabbitAyncListener 在你的类路径上 .

    我理解XML配置我的误导,但在提到的 com.tp.spring.amqp.rabbit 包中没有那个类它真的不会起作用 .

    另外要注意该类在 Async 部分中的类型 .

相关问题