`
wmj2003
  • 浏览: 99681 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

spring2.0.8和activemq5.2 topic方式,消息被重复消费的问题找到原因

阅读更多

找了好几个月,终于找到了问题的所在。

因为以前在后台的java类中重复加载了spring配置文件,导致topic的消费者被重复增加,所以一个消息被消费了两次。

 

package com.work.core.spring;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import org.springframework.context.ApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

/**
 * 通过静态代码来获取spring的context,第一次调用的使用运行。
 *
 * @author wangmingjie
 *
 */
public class MyBeanUtil {
//因为下面的代码导致了activemqtopic订阅方式,每次都被消费了两次。
 
//在非web环境中获取bean的方法。
// private static ApplicationContext context = new ClassPathXmlApplicationContext(
//   "applicationContext*.xml");

 
 private static ApplicationContext context ;

 public static ApplicationContext getContext() {
  return context;
 }

 /**
  * 通过权限管理QxglInitServlet来设置context
  * @param context
  */
 public static void setContext(ApplicationContext context) {
  MyBeanUtil.context = context;
 }

 /**
  * 在应用程序中,获取到spring的beans对象。<br>
  *  首先在QxglInitServlet中设置了context。
  * @param beanName
  * @return
  */
 public static Object getBean(String beanName) {
  return context.getBean(beanName);
 }

 /**
  * 在web环境中,通过WebApplicationContext来获取spring的bean。
  * @param request
  * @param beanName
  * @return
  */
 public static Object getBean(HttpServletRequest request, String beanName) {
  WebApplicationContext webApplicationContext = WebApplicationContextUtils
    .getWebApplicationContext(request.getSession()
      .getServletContext());
  return webApplicationContext.getBean(beanName);
 }
 
 /**
  * 在web环境中,通过WebApplicationContext来获取spring的bean。
  * @param context
  * @param beanName
  * @return
  */
 public static Object getBean(ServletContext context, String beanName) {
  WebApplicationContext webApplicationContext = WebApplicationContextUtils
    .getWebApplicationContext(context);
  return webApplicationContext.getBean(beanName);
 } 
}

  • 大小: 170.7 KB
分享到:
评论

相关推荐

    spring2.0.8jar包

    在Spring 2.0.8中,ApplicationContext接口是Spring应用的核心,它允许开发者从容器中获取Bean,同时提供了一种方式来加载和解析配置元数据。 4. **Spring AOP**: AOP在Spring 2.0.8中用于实现横切关注点,如日志...

    Struts 2.1 + Spring 2.0.8 + Hibernate 3.1.rar

    Struts 2.1、Spring 2.0.8 和 Hibernate 3.1 是三个非常重要的Java企业级开发框架,它们在2000年代末到2010年代初广泛应用于构建大型Web应用程序。这个压缩包文件组合了这三个框架的特定版本,旨在提供一个集成的...

    Spring2.0.8源码包

    通过阅读和分析Spring 2.0.8的源码,开发者可以深入了解Spring的内部工作机制,这对于优化应用性能、排查问题以及定制化开发都有极大的帮助。尽管Spring已经发展到更高的版本,但其核心设计理念和机制在后续版本中...

    Spring 2.0.8 API帮助文档

    Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试...

    spring-2.0.8-sources.jar.zip

    《Spring框架2.0.8源码解析》 在Java世界中,Spring框架以其高度的灵活性、可扩展性以及...通过对源码的深入研究,开发者不仅可以提升自己的技术水平,还能更好地利用Spring解决实际问题,提高软件开发的效率和质量。

    spring-framework-2.0.8.rar

    此外,Spring 2.0.8还增强了对JMS(Java消息服务)和邮件服务的支持,提供了集成各种消息中间件和发送邮件的能力,使得分布式系统中的异步通信和通知变得更加容易。 总而言之,Spring Framework 2.0.8是一个集大成...

    spring-framework-2.0.8.zip

    在 Spring 2.0.8 中,有编程式事务管理和声明式事务管理两种方式。编程式事务管理允许开发者在代码中显式地开始、提交或回滚事务,而声明式事务管理则通过 AOP(面向切面编程)来实现,可以在不需要修改业务代码的...

    spring2.0.8 Api

    《Spring 2.0.8 API 深度解析》 Spring Framework 2.0.8 是一个重要的版本,它在当时的Java企业级应用开发中扮演了关键角色。这个版本引入了许多新特性,增强了框架的稳定性和灵活性。本文将深入探讨Spring 2.0.8 ...

    spring-jdbc-2.0.8.jar

    spring-jdbc-2.0.8.jar

    spring-context-2.0.8.jar

    spring-context-2.0.8.jar

    struts2.1.6+Spring2.0.8+Ibatis2.3.4工程

    struts2.1.6+Spring2.0.8+Ibatis2.3.4工程 开发工具:eclipse3.3+myeclipse6.5 应用技术:Struts2,Spring,Ibatis 数据库:oracle 测试JDK:JDK1.6 测试服务器:Tomcat6.0 非常完整的工程,部署到Tomcat上就可以使用...

    spring-aop-2.0.8.jar

    spring-aop-2.0.8.jar

    spring-support-2.0.8.jar

    spring-support-2.0.8.jar

    struts2.1.2+spring2.0.8+hibernate3.3.1架构需要的jar包

    Struts2.1.2、Spring2.0.8和Hibernate3.3.1是经典的Java企业级开发架构,被称为SSH(Struts2、Spring、Hibernate)框架。这些框架组合在一起,提供了完整的MVC(Model-View-Controller)设计模式支持,以及数据持久...

    spring-framework-2.0.8

    Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由...从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

    spring-mock-2.0.8.jar

    spring-mock-2.0.8.jar

    spring-framework-2.0.8-with-dependencies

    - **消息处理**:Spring Integration模块支持异步消息传递和企业级集成。 5. **学习与进阶** - 对于初学者,可以从Spring官方文档和各种教程开始,理解基本概念和用法。 - 进阶学习可以关注Spring的高级特性,如...

    spring-security-2.0.8.RELEASE jar包和api

    spring-security-2.0.8的官方jar包和api,不过不是html的,可能不太方便

    spring-beans-2.0.8.jar

    spring-beans-2.0.8.jar

Global site tag (gtag.js) - Google Analytics