SpringSession集成redis实现session共享(No bean named 'springSessionRepositoryFilter' available)
2017-03-12 15:19
2201 查看
分布式部署架构下传统的session共享有一定的局限性(你来到这儿想必已经受到了其带来的困扰),所以,springsession + redis(NSQL内存数据库)成了当下一个很好很时髦的选择
----Spring
Session provides an API and implementations for managing a user’s session information.
Pain Point:《http://www.paotuierde.com/(点击打开链接)》
spring
session是一个独立于
spring、springMVC 的 HttpSession 管理工具包,在使用的过程中一定要注意!!!在web.xml配置springSessionRepositoryFilter过滤器的时候要指定redis和集成redis配置的配置文件位置,如下面配置代码,我只是将redis和集成redis的配置信息写在了springmvc的配置文件中,不要因为以前配置springmvc没有用到context-param指定springmvc配置文件的加载位置,就不用指定以下配置文件信息,会导致以下错误,让你抓狂:
不注意以上配置信息带来的抓狂错误信息:
三月 12, 2017 3:47:31 下午 org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter springSessionRepositoryFilter
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSessionRepositoryFilter' available
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1207)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1087)
at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:326)
at org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:235)
at org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:199)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4841)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5535)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1263)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1978)
at java
4000
.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
三月 12, 2017 3:47:31 下午 org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more Filters failed to start. Full details will be found in the appropriate container log file
三月 12, 2017 3:47:31 下午 org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/pted] startup failed due to previous errors
spring session集成redis的配置:
1. web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring/spring-mvc.xml
</param-value>
</context-param>
……
<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>
2. spring-mvc.xml
<!-- scanner redis properties -->
<context:property-placeholder location="classpath:properties/redis.properties" />
<!-- ************************************** -->
<!-- 通过以下配置将spring session 和redis整合到了一起 -->
<bean
class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
<!-- 过期时间10分钟 -->
<property name="maxInactiveIntervalInSeconds" value="600"></property>
</bean>
<!-- ************************************** -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean>
<bean id="connectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:host-name="xxx.xxx.xxx.xxx" p:pool-config-ref="jedisPoolConfig" />
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
----Spring
Session provides an API and implementations for managing a user’s session information.
Pain Point:《http://www.paotuierde.com/(点击打开链接)》
spring
session是一个独立于
spring、springMVC 的 HttpSession 管理工具包,在使用的过程中一定要注意!!!在web.xml配置springSessionRepositoryFilter过滤器的时候要指定redis和集成redis配置的配置文件位置,如下面配置代码,我只是将redis和集成redis的配置信息写在了springmvc的配置文件中,不要因为以前配置springmvc没有用到context-param指定springmvc配置文件的加载位置,就不用指定以下配置文件信息,会导致以下错误,让你抓狂:
不注意以上配置信息带来的抓狂错误信息:
三月 12, 2017 3:47:31 下午 org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter springSessionRepositoryFilter
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSessionRepositoryFilter' available
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1207)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1087)
at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:326)
at org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:235)
at org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:199)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4841)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5535)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1263)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1978)
at java
4000
.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
三月 12, 2017 3:47:31 下午 org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more Filters failed to start. Full details will be found in the appropriate container log file
三月 12, 2017 3:47:31 下午 org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/pted] startup failed due to previous errors
spring session集成redis的配置:
1. web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring/spring-mvc.xml
</param-value>
</context-param>
……
<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>
2. spring-mvc.xml
<!-- scanner redis properties -->
<context:property-placeholder location="classpath:properties/redis.properties" />
<!-- ************************************** -->
<!-- 通过以下配置将spring session 和redis整合到了一起 -->
<bean
class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
<!-- 过期时间10分钟 -->
<property name="maxInactiveIntervalInSeconds" value="600"></property>
</bean>
<!-- ************************************** -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean>
<bean id="connectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:host-name="xxx.xxx.xxx.xxx" p:pool-config-ref="jedisPoolConfig" />
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
相关文章推荐
- Spring集成redis实现session共享(无视服务器)
- springboot 集成redis实现session共享
- springboot利用springsession实现redis共享session,并且自定义sessionid
- spring-session整合redis集群的时候,No qualifying bean of type [org.springframework.session.SessionRepository
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilter
- No bean named 'springSecurityFilterChain' is defined
- Spring Session + Redis实现分布式Session共享
- spring boot + redis 实现session共享
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sessionFactory' is d
- 单点登录实现(spring session+redis完成session共享)
- 使用OpenSessionInViewFilter 发生异常: No bean named 'sessionFactory'
- 单点登录实现(spring session+redis完成session共享)
- spring boot + redis 实现session共享
- spring-session-data-redis实现session共享
- 使用OpenSessionInViewFilter 发生异常: No bean named 'sessionFactory
- Spring Session + redis实现session共享
- springboot整合redis,实现session共享
- No bean named 'springSecurityFilterChain' is defined 问题解决
- No bean named 'springSecurityFilterChain' is defined
- 由OpenSessionInViewFilter引起的No bean named 'sessionFactory' 异常