I add spring-session-data-redis 2.3.1 for store tomcat session on redis so I got this exception:How fixed this exception?
Oct 26, 2020 10:41:40 PM org.apache.catalina.core.StandardContext filterStartSEVERE: Exception starting filter [springSessionRepositoryFilter]org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSessionRepositoryFilter' availableat 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:285)at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:112)at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4637)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5282)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1421)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1411)at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)at java.util.concurrent.FutureTask.run(FutureTask.java)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)
My spring session config is:
@Order(3)@Configuration@EnableRedisHttpSessionpublic class HttpSessionConfig extends AbstractHttpSessionApplicationInitializer { @Bean @SpringSessionRedisConnectionFactory public JedisConnectionFactory connectionFactory(){ return new JedisConnectionFactory(); }}
public class WebsiteInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return new Class[]{SpringRootConfig.class}; } @Override protected Class<?>[] getServletConfigClasses() { return new Class[]{SpringWebConfig.class,HttpSessionConfig.class}; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } @Override public void onStartup(ServletContext servletContext) throws ServletException { super.onStartup(servletContext); servletContext.addListener(new SessionListener()); servletContext.getSessionCookieConfig().setMaxAge(90 * 24 * 60 * 60); servletContext.getSessionCookieConfig().setName("sess"); FilterRegistration.Dynamic fr = servletContext.addFilter("encodingFilter", CharacterEncodingFilter.class); fr.setInitParameter("encoding", "UTF-8"); fr.setInitParameter("forceEncoding", "true"); fr.addMappingForUrlPatterns(null, true, "/*"); }}
@Order(1)@Import({HibernateConfiguration.class})@Configuration@ComponentScan({"my.adapters.website.services"})@EnableAsync(proxyTargetClass = true)@PropertySource(value = "classpath:config.properties", encoding = "utf-8")@PropertySource(value = "classpath:literal.properties", encoding = "utf-8")@PropertySource(value = "classpath:x-config.properties", encoding = "utf-8")public class SpringRootConfig { @Bean public JavaMailSender getJavaMailSender() { JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); return mailSender; }}
@Order(2)@EnableWebMvc@Configuration@ComponentScan("/")public class SpringWebConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/assets/**") .addResourceLocations("/assets/"); registry.addResourceHandler("/**") .addResourceLocations("/assets/js/sw.js", "/assets/js/pushe-sw.js"); } @Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setViewClass(JstlView.class); viewResolver.setPrefix("/WEB-INF/views/jsp/"); viewResolver.setSuffix(".jsp"); return viewResolver; } @Bean(name = "messageSource") public MessageSource getMessageResource() { ReloadableResourceBundleMessageSource messageResource = new ReloadableResourceBundleMessageSource(); messageResource.setBasename("classpath:i18n/messages"); messageResource.setDefaultEncoding("UTF-8"); return messageResource; } @Bean CharacterEncodingFilter characterEncodingFilter() { CharacterEncodingFilter filter = new CharacterEncodingFilter(); filter.setEncoding("UTF-8"); filter.setForceEncoding(true); filter.setForceResponseEncoding(true); filter.setForceRequestEncoding(true); return filter; } @Bean(name = "multipartResolver") public CommonsMultipartResolver multiPartResolver() { CommonsMultipartResolver resolver = new CommonsMultipartResolver(); return resolver; } @Bean(name = "localeResolver") public LocaleResolver getLocaleResolver() { LocaleResolver resolver = new UrlLocaleResolver(); return resolver; } @Override public void addInterceptors(InterceptorRegistry registry) { UrlLocaleInterceptor localeInterceptor = new UrlLocaleInterceptor(); registry.addInterceptor(localeInterceptor).addPathPatterns("/en/*", "/tr/*"); }}