bill447 2022-08-05 17:27 采纳率: 100%
浏览 148
已结题

Spring MVC 使用 Spring Session 实现 Session 共享-Redis报错 :redisMessageListenerContainer

希望实现Spring MVC 使用 Spring Session 实现 Session 共享-Redis
我项目的环境是jdk7+spring4.3.16.RELEASE

pom.xml配置

<dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>2.1.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
            <version>1.3.5.RELEASE</version>
        </dependency>

然后按照网上说的配置完xml后,启动报错

img

跟网上不一样的就是我这使用了jedis切片连接池,不知道是否有关系

application.xml配置

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxIdle" value="200" />
        <property name="testOnBorrow" value="false"/>
        <property name="testOnReturn" value="false"/>
    </bean>

    <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool"  scope="singleton">
        <constructor-arg index="0" ref="jedisPoolConfig" />
        <constructor-arg index="1">
            <list>
                <bean class="redis.clients.jedis.JedisShardInfo">
                    <constructor-arg name="host" value="${redis.ip}" />
                    <constructor-arg name="port" value="${redis.port}" />
                    <property name="password" value="${redis.pass}"/>
                    <constructor-arg name="timeout" value="2000" />
                    <constructor-arg name="weight" value="1" />
                </bean>
            </list>
        </constructor-arg>
    </bean>
    <bean id="redisUtil" class="cn.o.cache.RedisClientTemplate"/>

    <bean id="redisHttpSessionConfiguration"
          class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"/>

web.xml配置

 <filter>
        <filter-name>springSessionRepositoryFilter</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>springSessionRepositoryFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


求打救

  • 写回答

3条回答 默认 最新

  • 闻志流e师兄 2022-08-05 17:57
    关注
    
    @Bean
        public RedisMessageListenerContainer redisMessageListenerContainer(
                RedisConnectionFactory connectionFactory,
                RedisOperationsSessionRepository messageListener) {
    
            RedisMessageListenerContainer container = new RedisMessageListenerContainer();
            container.setConnectionFactory(connectionFactory);
            if (this.redisTaskExecutor != null) {
                container.setTaskExecutor(this.redisTaskExecutor);
            }
            if (this.redisSubscriptionExecutor != null) {
                container.setSubscriptionExecutor(this.redisSubscriptionExecutor);
            }
            container.addMessageListener(messageListener,
                    Arrays.asList(new PatternTopic("__keyevent@*:del"),
                            new PatternTopic("__keyevent@*:expired")));
            container.addMessageListener(messageListener, Arrays.asList(new PatternTopic(
                    messageListener.getSessionCreatedChannelPrefix() + "*")));
            return container;
        }
    

    这是RedisHttpSessionConfiguration中关于redisMessageListenerContainer这个bean的信息,需要两个参数(bean注入),你这缺少RedisConnectionFactory这个bean的配置

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月24日
  • 已采纳回答 8月16日
  • 创建了问题 8月5日

悬赏问题

  • ¥15 nslt的可用模型,或者其他可以进行推理的现有模型
  • ¥15 arduino上连sim900a实现连接mqtt服务器
  • ¥15 vncviewer7.0安装后如何正确注册License许可证,激活使用
  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并2
  • ¥66 关于人体营养与饮食规划的线性规划模型
  • ¥15 基于深度学习的快递面单识别系统
  • ¥15 Multisim仿真设计地铁到站提醒电路
  • ¥15 怎么用一个500W电源给5台60W的电脑供电
  • ¥15 请推荐一个轻量级规则引擎,配合流程引擎使用,规则引擎负责判断出符合规则的流程引擎模板id
  • ¥15 Excel表只有年月怎么计算年龄