繁体   English   中英

Spring Boot数据源异常关闭

[英]Spring boot datasource is down with exception

我已经设置了spring boot,因此在/ health下显示数据源状态。 但是,我得到了这个JSON:

"dataSource" : {
   "status" : "DOWN",
   "database" : "MySQL",
   "error" : "org.springframework.dao.TransientDataAccessResourceException: StatementCallback; SQL [SELECT 1]; Conversion not supported for type java.lang.Object; nested exception is java.sql.SQLException: Conversion not supported for type java.lang.Object"
},

如您所见,我的数据库是mysql,我正在Windows8上运行它。 我确实尝试了“选择1”查询,但确实在mysql的命令行中返回1。 知道问题可能在哪里吗?

DataSourceHealthIndicator通过调用JdbcTemplate运行其配置的查询(默认为SELECT 1 ):

this.jdbcTemplate.queryForObject(query, Object.class)

在Java 6上,这最终导致对ResultSet.getObject(index)的调用,并且一切正常。 在Java 7上,调用的是ResultSet.getObject(index, Object.class) (这种getObject的重载在Java 7中是新的)。 在其默认配置中,MySQL JDBC驱动程序无法创建并返回java.lang.Object的实例,因此它将引发问题中所述的异常。

您可以通过启用自动反序列化来更改MySQL的行为,并使其返回适合该列的实例:

spring.datasource.url: jdbc:mysql://localhost/test?autoDeserialize=true

我还打开了Spring boot问题,以便我们可以进行更改,从而不必启用自动反序列化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM