当前位置: 首页 > 知识库问答 >
问题:

Spring会话JDBC-使用@Autowired对象时出错

何高旻
2023-03-14

为了将会话保存在数据库中,我在这里使用这个示例实现了Spring会话JDBC。我在使用@Autow的会话范围时遇到问题:我JavaClassDump如下:

public class Dump 
{
    private String someName;

    public Dump(){}

    public Dump(String someName) {
        this.someName = someName;
    }

    public String getSomeName() {
        return someName;
    }

    public void setSomeName(String someName) {
        this.someName = someName;
    }
}

然后我在会话\u范围内注册这个bean,如下所示:

@Configuration
public class DumpConfig{

    @Bean
    @Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
    public Dump getDump() {
        return new Dump();
    }

}

在控制器中,我正在对其进行布线并尝试使用:

@Controller
@RequestMapping("/")
public class HomeController {

    @Autowired
    private Dump dump;

    @GetMapping("/dump")
    @ResponseBody
    public String demo() {
        return dump.getSomeName();
    }
}

当我尝试运行时,出现以下错误:

Failed to convert from type [java.lang.Object] to type [byte[]] for value 'Dump@35b2136e' nested exception is org.springframework.core.serializer.support.SerializationFailedException

共有1个答案

童冠玉
2023-03-14

请参考下面提到的链接中的视频(大约1:14),演讲者说这个问题在Spring 3.0中通过提供不可序列化bean的代理得到了解决,该代理从当前应用程序上下文中获取一个实例(关于反序列化)。

https://www.infoq.com/presentations/Whats-New-in-Spring-3.0

 类似资料:
  • 我需要在代码中实现JDBC会话。为此,我按照https://www.baeldung.com/spring-session-jdbc. 我导入了maven依赖项并添加了spring。一场应用程序中的存储类型=jdbc。属性文件。然后我运行程序,它抛出了一系列错误。我不能确切地理解它在尖叫什么。如果有人能帮助我,我真的很感激。 这是我得到的错误:

  • 问题内容: 我有一个spring / jdbc / oracle 10g应用程序。Oracle服务器数据库时区设置为GMT + 2 JVM时区设置为GMT + 2(即使对于我而言这无关紧要)。 我有一个执行某些日期操作的存储过程。问题是,即使我未在代码/配置中明确设置会话时区,会话时区也不同于数据库时区(GMT)。 据我所知,会话时区默认情况下等于数据库时区。知道为什么会话时区与数据库时区不同,或

  • 我使用Spring Boot和Spring会话来控制一个使用ReactJS作为前端的应用程序。我的问题很简单,我尝试了几种方法来处理,但都没有成功。 React部分使用AJAX在登录后调用Spring REST服务(我也使用Spring Security),这至少需要30分钟。之后,会话停止,所有调用都会收到一个302,并以登录页面作为响应。这是意料之中的。 但我的问题是:有什么更好的方法来延长后

  • 我的应用程序使用SpringWebMVC框架运行,没有Spring Boot。现在,我想使用spring会话JDBC将会话存储到应用程序使用的数据库中。我在网上找到的所有示例都使用spring boot,如果没有使用spring boot,那么他们使用的数据源配置是嵌入式数据库,如下所示: 我有使用HikariCP的数据源配置,我希望spring会话使用此数据源配置。 如何使用当前配置与sprin

  • 当您使用spring-sesion-jdbc时,会话在DB中以字节的形式序列化,这意味着每次将Spring升级到具有不兼容的Session.serialVersionUUID的版本时,您都必须删除所有会话。 我想用JSON格式存储会话,但在谷歌上搜索了一下之后,似乎没有人这样做过。 当您认为使用JSON在Redis中存储会话是常见的做法时,这很奇怪。 为什么没有一种标准的方法以JSON格式在JDB

  • 问题内容: 我想用Spring来实现一个购物车,所以我需要在会话中保存一个对象(该对象具有product,paymentType和deliveryType之类的属性)。我尝试使用bean并将属性“ scope”设置为“ session”来创建它,但是它不起作用,我应该在控制器或类中使用一些其他注释吗?任何示例用法都将非常有帮助:-)预先感谢。 问题答案: 然后 如果它在Web上下文(dispatc