Redis Session Manager for Apache Tomcat8

GitHub上有人实现Tomcat使用Redis服务器来缓存Session,可以在不修改项目的基础上,实现Redis缓存Session。
GitHub地址:https://github.com/jcoleman/tomcat-redis-session-manager/tree/master
但是,开发者只是支持到Tomcat7,Tomcat8之后的都不支持,没办法只能自己去适配。

本文参考了下面的博客:
http://www.cnblogs.com/interdrp/p/4868740.html

对源码进行修改,主要修改了“RedisSessionManager.java”这个类,具体修改如下:

  private void initializeSerializer() throws ClassNotFoundException, IllegalAccessException, InstantiationException {
    log.info("Attempting to use serializer :" + serializationStrategyClass);
    serializer = (Serializer) Class.forName(serializationStrategyClass).newInstance();

    Loader loader = null;

    if (getContainer() != null) {
      loader = getContainer().getLoader();
    }

    ClassLoader classLoader = null;

    if (loader != null) {
      classLoader = loader.getClassLoader();
    }
    serializer.setClassLoader(classLoader);
  }

修改成下面这样:

  private void initializeSerializer() throws ClassNotFoundException, IllegalAccessException, InstantiationException {
      log.info("Attempting to use serializer :" + serializationStrategyClass);
      serializer = (Serializer) Class.forName(serializationStrategyClass).newInstance();

      Loader loader = null;
      Context context = this.getContext();
      if (context != null) {
          loader = context.getLoader();
      }

      ClassLoader classLoader = null;

      if (loader != null) {
          classLoader = loader.getClassLoader();
      }
      serializer.setClassLoader(classLoader);
  }

修改之后,只能在Tomcat8下使用,Tomcat7之前的还是用原开发者提供的jar包。

Tomcat8下使用的jar包是:
commons-pool2-2.2.jar
jedis-2.7.2.jar
tomcat-redis-session-manager-tomcat-8.jar

其它和Tomcat7一样,参考上一篇博客:
http://blog.csdn.net/linkw_92/article/details/52297981

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值