Java SpringSession(版本2.0.2或更高版本)是否可以与Spring3.2.10一起使用?

Java SpringSession(版本2.0.2或更高版本)是否可以与Spring3.2.10一起使用?,java,spring,spring-session,Java,Spring,Spring Session,我们有旧的传统Spring应用程序:Spring3.2.10,SpringSecurity 3.2.10。现在我们需要使用Spring会话。但当我们在project中添加Spring会话时,在部署期间会出现以下异常: 2020-02-25 15:37:45,000 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 844) MSC000001: Failed to start service jboss.deploy

我们有旧的传统Spring应用程序:Spring3.2.10,SpringSecurity 3.2.10。现在我们需要使用Spring会话。但当我们在project中添加Spring会话时,在部署期间会出现以下异常:

2020-02-25 15:37:45,000 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 844) MSC000001: Failed to start service jboss.deployment.subunit."application.ear"."server.war".undertow-deployment: org.jboss.msc.service.StartException in service jboss.deployment.subunit."application.ear"."server.war".undertow-deployment: java.lang.NoClassDefFoundError: org/springframework/beans/factory/ObjectProvider
                at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:81)
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
                at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
                at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
                at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
                at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
                at java.lang.Thread.run(Thread.java:748)
                at org.jboss.threads.JBossThread.run(JBossThread.java:485)
Caused by: java.lang.NoClassDefFoundError: org/springframework/beans/factory/ObjectProvider
                at java.lang.Class.getDeclaredMethods0(Native Method)
                at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
                at java.lang.Class.getDeclaredMethods(Class.java:1975)
                at org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(StandardAnnotationMetadata.java:183)
                at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:220)
                at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:164)
                at org.springframework.context.annotation.ConfigurationClassParser.processImport(ConfigurationClassParser.java:391)
                at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:205)
                at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:164)
                at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:130)
                at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:287)
                at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:225)
                at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:630)
                at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461)
                at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
                at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
                at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
                at io.undertow.servlet.core.ApplicationListeners.contextInitialized(ApplicationListeners.java:187)
                at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:216)
                at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:185)
                at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
                at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
                at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
                at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
                at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
                at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
                at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
                at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:250)
                at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:96)
                at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:78)
                ... 8 more
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.ObjectProvider from [Module "deployment.navigator-DEV-SNAPSHOT.ear.server-DEV-SNAPSHOT.war" from Service Module Loader]
                at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
                at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
                at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
                at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
                ... 38 more
此异常的原因是ObjectProvider仅从版本4.3开始在Spring中出现。但由于许多原因,我们现在无法升级Spring版本。是否可以以某种方式将Spring会话与Spring 3.2结合使用

以下是pom.xml的片段:

<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-core</artifactId>
    <version>2.1.8.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-jdbc</artifactId>
    <version>2.1.8.RELEASE</version>
</dependency>

不,因为它有一个你不愿意满足的依赖。您必须通过其他方式(即自己编写)提供相同的功能。您无法升级Spring版本的原因是什么?@Boris,原因是公司的要求:(
@Configuration
@EnableJdbcHttpSession
public class SessionConfig {

    @Autowired
    DataSource dataSource;

    @Bean
    public DataSourceTransactionManager dataSourceTransactionManager() {
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean
    public DefaultCookieSerializer cookieSerializer() {
        DefaultCookieSerializer defaultCookieSerializer = new DefaultCookieSerializer();
        defaultCookieSerializer.setCookieName("JSESSIONID");
        return defaultCookieSerializer;
    }

    @SuppressWarnings("unused")
    private static class SessionInitializer extends AbstractHttpSessionApplicationInitializer {
        //
    }
}