`
y806839048
  • 浏览: 1090312 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

消息队列监听器无法注入bean的问题解决

阅读更多

 

无论是srping配置文件中的bean,注解中的bean,dubbo注解中的bean到了spring之后都会到spring的上下文,

dubbo注解bean有时获取不到需要在customer另外用配置的方式即可(两套上下文问题

 

activeMq,rabbitMq这些用监听形式配置的bean会先于dispatch.xml中的bean扫描,所以直接用@Autwire会获取不到dispatch.xml中的bean,

此时需要显示从上下文获取(初始化时机问题

 

public class BeanUtil implements ApplicationContextAware {//实现这个接口可以自动注入spring的上下文

 

    private static WebApplicationContext context;

 

 

 

  @Override

    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {

        context = (WebApplicationContext) applicationContext;

 

/*        ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());

*/    }

    }

 

 

 

 

 

package com.houbank.incoming.web.rabbitMq;

 

import java.util.Date;

 

 

import com.alibaba.dubbo.config.annotation.Reference;

import com.houbank.incoming.api.FinancialSalesSMSMqMessageFacade;

import com.houbank.incoming.model.domain.SMSMqMessage;

import com.houbank.incoming.web.controller.FinancialInterfaceAccountInfoController;

import com.houbank.incoming.web.session.BeanUtil;

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

import org.apache.commons.lang3.StringUtils;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import org.springframework.stereotype.Controller;

import org.springframework.stereotype.Service;

 

 

 

 

@Controller

public class XSApplyIdListener {

    private Logger logger = LoggerFactory.getLogger(XSApplyIdListener.class);

 

@Reference

private FinancialSalesSMSMqMessageFacade financialSalesSMSMqMessageFacade;

 

 

 

public void listen(Object message) {

       //  {"pass":true, "orderNo": "11111"} {"pass":false, "orderNo": "11111", "failReason": "身份证不对"}  {"pass":false, "orderNo": "11111", "failReason": "[0000],电销微信交单失败"}

       //微信交单状态,0:不符合进件标准;1:待处理,2待客户补充材料,3已提交待复核;4:已提交待复核信审接收成功 5:已提交待复核信审接收失败 6:已提交待复核信审接收失败【可以重复提交信审】

       try {

   financialSalesSMSMqMessageFacade =   (FinancialSalesSMSMqMessageFacade)BeanUtil.getBean("financialSalesSMSMqMessageFacade");

   BeanUtil.getBean("restTemplate1");

   logger.info("receive message: " + message);  //  jSONObjectReq = JSONObject.fromObject(jsonReq.trim());

   String message1 = new String(((byte[])message), "UTF-8");

   SMSMqMessage xinshenReturnMessage = (SMSMqMessage)JSONObject.toBean(JSONObject.fromObject(message1), SMSMqMessage.class);

   System.out.print("============jyhjdtyjdy================="+xinshenReturnMessage);

   if(xinshenReturnMessage == null){

   return;

   }

   financialSalesSMSMqMessageFacade.insert(xinshenReturnMessage);

//   String orderNo = xinshenReturnMessage.get("orderNo")  == null ? "" : xinshenReturnMessage.getString("orderNo");

 

       } catch (Exception e) {

       logger.error(e.getMessage());

       return ;

       }

    }

}

 

 

参考:

https://blog.csdn.net/gaoshili001/article/details/77776863

 

 

 

分享到:
评论

相关推荐

    C#消息队列,windows使用消息队列,Queue消息队列

    此文档是C#开发的消息队列系统,适用于消息队列入门与新手。 在Windows 7 上安装消息队列的步骤 打开“控制面板”。 单击“程序”,然后在“程序和功能”下, 单击“打开或关闭 Windows 功能”。 -或者-单击“经典...

    linux c消息队列实现

    发送端读取指定的文件,并且按照环境变量中设置的消息队列键值进行发送。如果要改代码,只要把键值改一下,结构体储存要发送的消息的那个数组对应改成自己想发送的值,就可以很好的实现功能。接收端同样按环境变量...

    C#消息队列发送及接收

    C#消息队列发送及接收

    解决 消息队列不可用 附加Demo

    解决 “消息队列不可用 ” 附加案例 :消息队列异步接收 消息队列局域网发送与接收

    进程与消息队列进程与消息队列简单例子

    进程与消息队列进程与消息队列简单例进程与消息队列进程与消息队列简单例进程与消息队列进程与消息队列简单例进程与消息队列进程与消息队列简单例进程与消息队列进程与消息队列简单例

    ucOS消息队列使用

    描述ucOS消息队列的使用,此文网络截文,感谢原创作者。

    查看消息队列软件,消息队列工具

    消息队列工具,这是一个在查看消息队列中消息的一个很好的工具软件。

    各种消息队列对比

    消息队列中间件调研文档。ActiveMQ、RabbitMQ、RocketMq、Joram、HornetQ、OpenMQ等的对比。

    FreeRTOS PPT_消息队列

    FreeRTOS PPT_消息队列的介绍,本章节为大家讲解 FreeRTOS 的一个重要的通信机制----消息队列,初学者要熟练掌握,因为消息队列在实际项目中应用较多。 消息队列的概念及其作用 消息队列就是通过RTOS 内核提供的...

    c#消息队列案例

    包含消息队列、Autofac接口注入、Aspose.word pdf相关操作

    C++ 跨平台 异步消息队列

    C++封装实现的异步加锁消息队列,支持多线程,完美封装,可用于消息接收、处理

    Java消息队列常见面试题2022

    Java消息队列常见面试题,2022年最新,104页,祝您斩获高薪offer! Java消息队列常见面试题,2022年最新,104页,祝您斩获高薪offer! Java消息队列常见面试题,2022年最新,104页,祝您斩获高薪offer! Java消息...

    C++基于消息队列的多线程实现示例代码

    实现消息队列的关键因素是考量不同线程访问消息队列的同步问题。本实现涉及到几个知识点 std::lock_guard 介绍 std::lock_gurad 是 C++11 中定义的模板类。定义如下: template <class> class lock_guard; lock_...

    MQ 介绍 消息队列 消息中间件

    MQ 介绍 消息队列 消息中间件MQ 介绍 消息队列 消息中间件

    消息队列简介-培训材料

    消息队列简介PPT中包含了什么是消息队列、常用消息队列介绍、消息队列的应用,其中常用的消息队列主要讲了ActiveMQ、RabbitMQ、Kafka、RocketMQ,应用举例只列举了RocketMQ

    进程与消息队列例子简单容易

    进程与消息队列进程与消息队列进程与消息队列进程与消息队列进程与消息队列进程与消息队列进程与消息队列进程与消息队列进程与消息队列

    Linux消息队列

    Linux消息队列 ---------学习linux下 c编程之消息队列

    易语言简单的多线程消息队列

    易语言简单的多线程消息队列。@Patek。

    RabbitMQ实战 高效部署分布式消息队列

    RabbitMQ实战 高效部署分布式消息队列 RabbitMQ实战 高效部署分布式消息队列 RabbitMQ实战 高效部署分布式消息队列

Global site tag (gtag.js) - Google Analytics