Spring Boot启动失败:...rethrowRuntimeException....

今天遇到一个很傻的问题,在Spring Boot工程启动之后,中途就中断了,然后打印了如下日志:

...
2017-11-14 08:46:34.293  INFO 1902 --- [           main] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000230: Schema export complete
2017-11-14 08:46:34.295  INFO 1902 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariCP pool HikariPool-0 is shutting down.
2017-11-14 08:46:34.305  INFO 1902 --- [           main] o.s.c.ehcache.EhCacheManagerFactoryBean  : Shutting down EhCache CacheManager

然后我就用debug启动工程,在Spring 的org.springframework.util.ReflectionUtils中断点:

	public static void rethrowRuntimeException(Throwable ex) {
		if (ex instanceof RuntimeException) {
			throw (RuntimeException) ex;
		}
		if (ex instanceof Error) {
			throw (Error) ex;
		}
		throw new UndeclaredThrowableException(ex);
	}

到这里并不知道怎么回事了,然后只能看日志,既然是在hibernate中报错,那肯定和数据库有关系,Spring Boot启动时自动识别配置文件中的schema.sql和data.sql文件来创建表格和初始化数据,难免有不正确的地方,恰好我之前才改过data.sql文件。
果然,在我插入数据的SQL中就出现了问题:

INSERT INTO VBAP3_MAP_MAPPING_PLAN (ID ,DISPLAY_NAME ,MEMO ,ORD ,TENANT ,VERSION )
VALUES(3, '方案3', 'AREA', 3, '1', 0);
INSERT INTO VBAP3_MAP_MAPPING_PLAN (ID ,DISPLAY_NAME ,MEMO ,ORD ,TENANT ,VERSION )
VALUES(3, '方案4', 'CHINA', 4, '1', 0);

这里出现了ID的冲突,所以启动异常了,但是SQL运行出错,应该会在日志中显示出来,这里为什么没有显示,我也不太知道了。

    原文作者:Spring Boot
    原文地址: https://blog.csdn.net/u010429286/article/details/78528189
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞