0 0

springmvc整合memcached,无法初始化SockIO pool,困惑!30

自己做了一个springMVC+memcached的示例,启动的时候抛了这个错误 [ERROR] attempting to get SockIO from uninitialized pool!

memcachedPool可能有点问题,请大家帮忙看下,谢谢了。

​备注:查了很多资料,咱们iteye中有人遇到过相同的问题,我按照他解决的办法并没有起作用。

         pengmj 给出的解决办法是在 <bean id="memcahedPool"中加入lazy-init= false,也不行。大家帮看下我的代码哪里有问题~先谢过哈

 

spring配置文件如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans   
	http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
	http://www.springframework.org/schema/context   
	http://www.springframework.org/schema/context/spring-context-3.1.xsd  
	http://www.springframework.org/schema/aop   
	http://www.springframework.org/schema/aop/spring-aop-3.1.xsd  
	http://www.springframework.org/schema/tx   
	http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">

	<bean id="memcachedPool" class="com.danga.MemCached.SockIOPool" factory-method="getInstance" 
init-method="initialize" lazy-init="false" destroy-method="shutDown">
		<constructor-arg>
			<value>memcachedPool</value>
		</constructor-arg>
		<property name="servers">
			<list>
				<value>127.0.0.1:11211</value>
			</list>
		</property>
		<property name="initConn">
			<value>20</value>
		</property>
		<property name="minConn">
			<value>20</value>
		</property>
		<property name="maxConn">
			<value>1000</value>
		</property>
		<property name="nagle">
			<value>false</value>
		</property>
		<property name="socketTO">
			<value>3000</value>
		</property>
	</bean>
	<bean id="memcachedClient" class="com.danga.MemCached.MemCachedClient" >
		<constructor-arg>
			<value>memcachedPool</value>
		</constructor-arg>
	</bean>		
</beans>

 使用了基于注解的方式,Controller类如下

 

 

package com.test.web;
import java.util.Date;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.danga.MemCached.MemCachedClient;
import com.test.utils.MemcachedUtils;

@Controller
@RequestMapping("/loginController")
public class Login {
	
	@Autowired
	private MemCachedClient mcc;
	
	@RequestMapping("/login")
	public ModelAndView login(
			@RequestParam(value = "username") String userid,
			@RequestParam(value = "password") String passwd, HttpSession session){
		
		ModelAndView m = new ModelAndView();
		m.setViewName("../index");
		
		MemcachedUtils.set("test", "hello memcached",new Date(1000 * 60));//这里有问题!
		Object o = MemcachedUtils.get("test");//这里有问题!
		System.out.println(o.toString());
		m.addObject("errMsg","成功返回!");			
		return m;	
	}
	
}

 MemcachedUtils类代码如下:

 

 

import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.log4j.Logger;
import com.danga.MemCached.MemCachedClient;

public class MemcachedUtils {
	private static final Logger logger = Logger.getLogger(MemcachedUtils.class);  
    private static MemCachedClient cachedClient;  
    static {  
        if (cachedClient == null)  
            cachedClient = new MemCachedClient();  
    }  
  
    private MemcachedUtils() {  
    }  
    /** 
     * 添加memcached。 
     */   
    public static boolean set(String key, Object value, Date expire) {  
        return setExp(key, value, expire);  
    }  
	
    private static boolean setExp(String key, Object value, Date expire) {  
        boolean flag = false;  
        try {  
            flag = cachedClient.set(key, value, expire);  
        } catch (Exception e) {  
			logger.error(""Memcached set方法报错,key值:" + key + "\r\n"", e); 			
        }  
        return flag;  
    }
    /** 
     * 获取memcached。 
     */     
    public static Object get(String key) {  
        Object obj = null;  
        try {  
            obj = cachedClient.get(key);  
        } catch (Exception e) {  
			logger.error(""Memcached get方法报错,key值:" + key + "\r\n"", e); 
        }  
        return obj;  
    }   
 
}

 执行login类的login方法时出现[ERROR] attempting to get SockIO from uninitialized pool!大家帮看看,先谢过了哈。

 

错误堆栈信息如下:

[ERROR] attempting to get SockIO from uninitialized pool!
[ERROR] attempting to get SockIO from uninitialized pool!
2014-11-27 23:39:45 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet springMVC threw exception
java.lang.NullPointerException
	at com.test.web.Login.login(Login.java:37)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:100)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:604)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:565)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)

 

 

 

2014年11月28日 00:15

1个答案 按时间排序 按投票排序

0 0

采纳的答案

使用的什么客户端,
xmemcached和spring的整合:http://silentwu.iteye.com/blog/2124413

2014年11月29日 10:28

相关推荐

    springMVC+memcached整合

    此工程为 springMVC+memcached整合 项目。 resources\config\memcached.xml为 memcached配置文件。test\cn\sky\tian\test\spring为Demo的路径。 (里面有个src\cn\sky\tian\test\controller路径是MengoDB的demo,也...

    SSM与memcached整合项目

    SSM与Memcached整合是一个常见的Java Web开发技术组合,用于提升应用的性能和可扩展性。SSM是指Spring、Spring MVC和MyBatis三个框架的集成,而Memcached则是一种高性能、分布式内存对象缓存系统。这个项目是将这三...

    SpringMVC整合Redis集群

    项目由maven构建,使用springMVC整合了Redis的集群,发布到tomcat中,访问http://localhost:8080/SpringRedisCluster/redis/hello.do测试即可,前提是配好了redis的集群。

    Spring4+SpringMVC+mysql+memcached【同时支持mybatis+hibernate两种底层操作框架】

    在构建Web应用程序时,"Spring4+SpringMVC+mysql+memcached【同时支持mybatis+hibernate两种底层操作框架】"是一个常见的技术栈,它涵盖了多个关键组件,为高效、灵活的开发提供了坚实的基础。以下是这个技术组合中...

    springMVC整合elasticsearch,基于maven

    本文将详细探讨如何将SpringMVC与Elasticsearch整合,并基于Maven进行项目构建。 首先,集成Elasticsearch到SpringMVC项目中,我们需要在项目的`pom.xml`文件中添加Elasticsearch和Spring Data Elasticsearch的相关...

    Ueditor与jsp、SpringMVC整合,结合文档使用

    这里我只讲解jsp版本的,与servlet和SpringMVC整合,两种方式的应用。这里提供了纯servlet使用的代码,可以完成一个简单的新闻发布系统,做的比较简单,但是代码写的很详细,根据你自己的需求可以补充的。如果想和...

    mybatis 和springmvc整合

    本文将详细阐述如何将MyBatis与SpringMVC进行整合,以便在实际开发中实现高效、灵活的数据访问和控制层功能。 MyBatis是一个优秀的持久层框架,它提供了SQL映射文件和接口方法的绑定,使得开发者可以直接编写SQL...

    springmvc整合hibernate4

    通过这样的整合,SpringMVC负责处理HTTP请求,控制流程,而Hibernate4则负责数据持久化,使得开发更专注于业务逻辑,降低了数据库操作的复杂性。这种整合方式在大型企业级应用中非常常见,因为它们能够提供良好的...

    SpringMVC整合bootstrap-table 初始化数据-自定义搜索-弹出模态框

    在本项目中,我们主要探讨的是如何在SpringMVC框架下整合bootstrap-table,实现数据的初始化、自定义搜索功能,并且结合弹出模态框来展示详细信息。这是一个典型的前后端分离的应用场景,有助于提高用户体验并优化...

    springmvc整合mybatis,mysql

    在IT行业中,SpringMVC和MyBatis是两个非常重要的框架,它们分别负责Web应用程序的控制层和数据访问层。SpringMVC是Spring框架的一部分,主要用于处理HTTP请求和响应,而MyBatis则是一个轻量级的持久层框架,简化了...

    springMvc Mybatis Memcached

    而"springMvc Mybatis Memcached"可能是包含示例代码的项目文件,开发者可以通过阅读和运行这些代码来了解如何在实际项目中整合这三个技术。 学习和掌握Spring MVC、MyBatis和Memcached的整合开发,可以帮助开发者...

    SpringMVC-Memcached

    关于SpringMVC-Memcached 写的一个demo,希望对你们有所帮助

    springMVC整合的spring整合的

    本文将深入探讨SpringMVC与Spring的整合,以及如何在实际开发中进行配置和使用。 首先,SpringMVC作为一个轻量级的Web MVC框架,它简化了Web应用的开发流程,允许开发者将业务逻辑、数据访问和用户界面分离。Spring...

    springMVC整合MyBatis+sql文件

    压缩包内的"sql文件"通常是MyBatis配置中需要用到的SQL脚本,它们定义了数据库表结构、初始化数据,以及可能的业务查询语句。在MyBatis中,SQL语句通常写在Mapper接口对应的XML配置文件中,或者使用注解方式直接写在...

    springMvc整合支付宝、微信、WAP、电脑扫码支付demo用例

    此版本为springMvc整合版 有时候开发者想要的不一定是一个大而全的项目,而是可以集成到适合我们项目中的Demo。 支付宝 扫码支付、电脑支付、WAP支付 微信 扫码支付(模式一二)、公众号H5支付、WAP支付 springMvc...

    spring和springMVC整合源码

    本文将深入探讨"Spring和SpringMVC整合"的相关知识点,以及如何创建一个简单的"Hello, World!"示例。 1. **Spring框架核心概念** - **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一,通过DI,...

    netty整合SpringMVC实现下载

    整合 Netty 和 SpringMVC 可以利用两者的优点,构建高效且灵活的下载服务。 在整合过程中,主要涉及以下几个关键知识点: 1. **Netty 的工作原理**: - Netty 使用非阻塞 I/O(NIO)模型,通过事件循环(Event...

    Study:SpringMVC整合Mybatis的完整例子

    这篇博客"Study:SpringMVC整合Mybatis的完整例子"提供了关于如何将这两个框架集成到同一个项目中的详细教程。以下是对这个主题的详细阐述: **SpringMVC框架** SpringMVC是Spring框架的一个模块,专门用于构建Web...

Global site tag (gtag.js) - Google Analytics