2018年4月17日,
这是一个阴云密布的一天(虽然外面阳光明媚)。
打开idea,像往常一样准备上课,忽然发现有一段代码报红啦!
报红可还行? 在检查了一番之后并未发现其他错误,并且我发现这段代码位于 pom.xml 中,
是一段maven下载jar包的代码,确定该jar包已经存在后果断删除!
非常好,不报红了。
殊不知,灾难降临。
数据库无法链接(即在调用对数据插入数据的方法后报了一个500的错误):
具体错误信息没有保存,大致意思是(嵌套异常 java.sql.SQLException: 无法链接。
对数据库的链接受到阻碍,或者需要一个链接进来)。
首先,我决定排除一下:
1.是否是 table 出现问题,无法插入数据, 经过手动插入数据,排除此原因。
2.是否是 Dao 中的java语句出现拼写错误,经仔细检查后,排除。
3.是否是 对象中的属性名与表中的属性名 不一致,经过对比,排除。
至此,我觉得我的知识已经弹尽粮绝了。。。。
4.场外求助 -- call 亮哥,经提醒下 检查 Tomcat 和 protect structure 的配置信息,
于是 删除原有 tomcat,重新配置,之后 检查protect structure 中的配置信息:
① 检查Modules 中 Web 的 路径信息:此处出现问题 会造成如下错误:
IOException parsing XML document from ServletContext resource [/WEB-INF/Hello-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/Hello-servlet.xml]
②检查Artifacts配置问题:发现如果缺少war包,会出现如下报错
Configuration Error: deployment source 'Hello:war exploded' is not valid(并且不会弹出网页)
解决办法是现在maven projects中调用clean方法,清除之后在重新调用Build方法,重新建立
经历了这一系列的修改之后,这回总该成功运行了吧,嗯,果不其然,并没有。
那么,开始检查报错信息,时区问题,已有前车之鉴,轻松拿下,(配置c3p0的xml文件时,数据库名称后面加上
?serverTimezone=UTC,其实我并不知道为啥。。。)
一切都开始变得明朗起来,所以你觉得可以运行成功了? naive。。。错误还多的很,用亮哥的话来说:报错才好,错误能加深印象,嗯我是深表赞同的!(ps:我觉得印象最深的应该是亮哥,因为一直在给每个人找bug。此处应该有画外音:尼玛我说的加深印象不是给我的好嘛,你们就不能自己找嘛???)
好吧,真的有错误啊。还是相同的500错误,数据库无法链接。
经历了一系列的操作:①调整数据库的字段名和类的属性名一致;
②调整存放c3p0.java的Util包的位置与 mvc层并列
③检查数据库连接池的下载位置(Liberaries中,此处未出问题)
④再次检查代码的打包是否正确(此处无问题)
嗯。。。。终于。。。。嗯?你以为是可以运行了?naiv。。。。???(此处激动脸)
真的运行成功了!!(心情描述无意义,略过)
额,其实中途还出现了一个恶心的问题,在同学的帮助下解决 —— 运行程序时,out 和 target 缺失东西,并且位置混乱,
造成我每次修改之后如果不重新clean build ,那么修改效果不会实现。据说是自动更新功能被屏蔽了,暂时略蒙,以防万一
不再展现当时情景,见谅。
总结完毕! 告辞!