一、该问题的重现步骤是什么?
1. 我在blade-user 服务作为消息生产者 生成了验证码code 和传递 手机号 phone 到rabbitmq,blade-resource 服务作为消费者 能正常接收改消息。
2. 当我想调用短信的smsbuilder 发送短信时 就提示 拿不到 tenantId
3.直接导致空指针异常
4.我把rabbit工程的监听类复制到 blade-resource工程上 能够从队列中拿到消息
5.blade-user
二、你期待的结果是什么?实际看到的又是什么?
如果是直接调用 短信发送的接口 tenantId是有值的,在resource工程使用监听类之后 拿不到值导致空指针
按照以往的实现是直接在监听类调用阿里的短信接口,。。。有没有其他的实现思路?就是监听类 能够调用短信发送的方法。。。
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
四、请提供详细的错误堆栈信息,这很重要。
org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Listener method 'public void org.springblade.resource.handler.DirectQueueOneHandler.directHandlerManualAck(java.util.Map<java.lang.String, java.lang.String>,org.springframework.amqp.core.Message,com.rabbitmq.client.Channel)' threw exception
at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:204)
at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.onMessage(MessagingMessageListenerAdapter.java:129)
at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:1542)
at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.actualInvokeListener(AbstractMessageListenerContainer.java:1468)
at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:1456)
at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:1451)
at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:1400)
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doReceiveAndExecute(SimpleMessageListenerContainer.java:875)
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.receiveAndExecute(SimpleMessageListenerContainer.java:859)
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$1600(SimpleMessageListenerContainer.java:78)
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.mainLoop(SimpleMessageListenerContainer.java:1142)
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1048)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException: null
at java.util.Objects.requireNonNull(Objects.java:203)
at org.springblade.core.tool.utils.WebUtil.getParameter(WebUtil.java:238)
at org.springblade.resource.builder.sms.SmsBuilder.getSms(SmsBuilder.java:126)
at org.springblade.resource.builder.sms.SmsBuilder.template(SmsBuilder.java:90)
at org.springblade.resource.builder.sms.SmsBuilder.template(SmsBuilder.java:79)
at org.springblade.resource.handler.DirectQueueOneHandler.directHandlerManualAck(DirectQueueOneHandler.java:57)
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.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:171)
at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:120)
at org.springframework.amqp.rabbit.listener.adapter.DelegatingInvocableHandler.invoke(DelegatingInvocableHandler.java:130)
at org.springframework.amqp.rabbit.listener.adapter.HandlerAdapter.invoke(HandlerAdapter.java:61)
at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:196)
... 12 common frames omitted
五、若有更多详细信息,请在下面提供。
扫一扫访问 Blade技术社区 移动端