找了好几个月,终于找到了问题的所在。
因为以前在后台的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
分享到:
相关推荐
Struts 2.1 + Spring 2.0.8 + Hibernate 3.1.rarStruts 2.1 + Spring 2.0.8 + Hibernate 3.1.rar
spring2.0.8jar包 spring-bean-2.0.8 spring-core-2.0.8 spring-context-2.0.8 spring-web-2.0.8
Spring2.0.8需要关联的源码包 此源码包由官方提供,没有对源码进行任何修改
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试...
spring-jdbc-2.0.8.jar
spring-2.0.8-sources.jar
spring-context-2.0.8.jar
struts2.1.6+Spring2.0.8+Ibatis2.3.4工程 开发工具:eclipse3.3+myeclipse6.5 应用技术:Struts2,Spring,Ibatis 数据库:oracle 测试JDK:JDK1.6 测试服务器:Tomcat6.0 非常完整的工程,部署到Tomcat上就可以使用...
spring-framework-2.0.8.rar .
spring-support-2.0.8.jar
struts2.1.2+spring2.0.8+hibernate3.3.1架构需要的jar包
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由...从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
spring-mock-2.0.8.jar
Springframework2.0.8 API 文档,html格式的
spring-security-2.0.8的官方jar包和api,不过不是html的,可能不太方便
spring-aop-2.0.8.jar
spring-beans-2.0.8.jar
spring-dao-2.0.8.jar
spring-web-2.0.8.jar
spring2.0开发包, 很好使用 多多支持啊