背景
- 软件环境IDEA + TOMCAT 8.0.28 + springMvc+ hibernate + spring
- 报错现象:
分析
从图中来看感觉应该不是日志的原因,日志报错应该不影响。而且之前就是这样的
连接池是最大嫌疑犯然后将报错信息Google。按照各种教程调试。
其中配置过c3p0参数,没用。修改过server.xml,没用。
换了一个tomcat,也没用。后面准备更换连接池,使用阿里的druid了。
但是心里不服啊,不科学啊。之前都是一样的东西,完全是可以的啊。冷静冷静,在这之前,我在干嘛?我只修改domain,这个domain不可能有问题啊。
不行得将报错信息,抽丝剥茧的看一遍。在启动报错之后,有这样两句报错信息。
严重: The web application [/bt] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
[2015-11-06 09:42:02,240] Artifact baotao:war exploded: Error during artifact deployment. See server log for details.
这是应用程序启动失败时的报错信息。应该很重要。再看后面,See server log for details.
去看看server.log
Error creating bean with name 'sessionFactory' defined in class path resource [spring-hibernate.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: Repeated column in mapping for entity: com.baotao.domain.GoodsAttribute column: GOODS_ID (should be mapped with insert="false" update="false"
这里说的明明白白。真的是domain写错了,商品属性表中的商品id字段重复了。
总结
- 年轻人不要太自信,当初不知哪来的自信怎么就断定自己domain没有问题。
- 之前有一个误区,从来不看,1区2区的信息
- 出了问题不要慌,仔细思考到底改动了什么,是在不行,一步一步排除,分析。总是能解决的。