1.惯例,先说
需求
:
由于小弟新手,带领团队合作开发,需要在局域网内将本人电脑上的工程拷贝到其他人电脑上进行开发,所以产生了一系列问题,在这里做个记录,以便以后注意及查看。
2.产生的
问题
:
1)
中文乱码
:
java程序中出现的中文成为乱码。
2)
xml报错
:众多xml文件出现报错,包括第一行出现
No grammar constraints (DTD or XML Schema) referenced in the document
等错误。
3)
getContextPath()无法识别:
项目中用到的多个绝对路径无法识别。
4)
hibernate连接报错:
sessionFactory实例初始化失败。
3.解决方案:
1)
中文乱码:
原因:当然是编码字符集的问题了。
解决:最好是改变当前工作空间的编码方式。
window–>preference–>General–>Workspace.左下角改变一下字符编码方式,选择utf-8或者gbk,改完看效果即可。
当然也可以只改变当前工程的编码方式。
在工程名上右击–>Properties–>Resource–>改变编码方式(Text file encoding)
建议采用第一种方式,不过可能会造成其他工程的混乱。
2)
xml的报错:
原因:我在没有解决错误1)的时候先处理了错误3),导致阐释此错误。
解决:将程序彻底清除,之后重新导入,先查看是否有中文编码错误并解决,然后再处理其他错误。
3)
getContextPath()无法识别:
原因:原有主机与目标主机的jdk版本不相同,在拷贝工程时并没有将jdk或者jre包含在工程中,导致jar library 无法从本机上识别。
解决:将原有jre 的library删除,重新导入本机中安装的jdk。
注意点:因为用到了hibernate,在jdk版本兼容上有一些问题。
原来电脑上用的是jdk1.7,hibernate用的3.5。若目标计算机上用的是jdk1.8
则会报错。
具体步骤参考:http://blog.csdn.net/zhanggnol/article/details/6217892
4)
hibernate连接报错:
原因1:jdk版本不同
解决:更换jdk版本。已知hibernate3.5.0与jdk1.7的任意版本是可以匹配的。
原因2:硬件或者网络问题。
解决:通过ping的方式先排查是否能够连接服务器,若不能连接则应当优先解决这个问题。
原因3:tomcat服务器缓存了一些数据,可能影响连接目标服务器。
解决:建议clean服务器,再重新发布,依旧不行可以尝试在IDE中删除tomcat,重新建立。
原因4:可能是缺少数据库简介hibernate的jar,本人数据库使用oracle10g,所以缺少ojdbc14.jar。
解决:找到ojdbc14.jar,加入build path,在配置sessionFactory的xml中,找到oracle.jdbc.driver.OracleDriver,若按住ctrl鼠标移动到上面,发现他是一个超链接(有下划线),则证明ojdbc14.jar已加入路径。
总结:注意解决问题的顺序,首先网络能否连接服务器,其次中文编码是否有问题,再其次引用的jar包以及library工程中能否找到,并且注意版本协同问题。最后,刷新或清理tomcat,重新发布。