Java web:SSH项目拷贝产生问题以及解决(getContextPath() xml hibernate等报错)

来源:互联网 发布:数控铣床编程代码d 编辑:程序博客网 时间:2024/06/08 23:10

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,重新发布。




0 0