项目常见问题及其解决方案
1.错误描述: 在启动tomcat启动的时候,进入tomcat自动设置的断点,个人认为这种情况在项目class文件加载出错的会出现。我的项目在启动时Java就会自动去读取一些配置文件的信息,而由于这些配置文件的位置是写错了的,所以tomcat在加载这些读取配置文件的class文件时就会出错。出错之后tomcat就会自动设置断点来帮助你调试,而不是直接就启动tomcat。
解决办法:在Debug状态下打开Breakpoints视图,上面会显示设置的断点,点击右键选择remove all就可以去掉所有断点。如重启tomcat的时候仍然有错误,我的做法是重启PC,然后运行就OK了,当然这种方法比较暴力,而且是治标不治本,最好能找到其中的原因。
2.错误描述:在项目中设置文件之后,Flex端的断点可以正常进入,而通过RemoteObject(BlazeDS)所连接的java端断点则不能正常进入。
解决办法:修改工程根目录下的..flexProperties配置文件.
修改其中的serverContextRoot:/bin-debug 改成 /DartCloud(工程名)。
3.修改了项目的配置文件之后,比如.flexProperties,一定要刷新项目;Java源代码修改之后,也要重新部署web项目,即redeploy。
4.用Java以相对路径的方式读取配置文件时,若用这种方式来加载文件:File file = new File(“conf/dbInfo.properties”)。需要注意的地方有
(1)conf前面是没有/符号的;
(2)在本地运行的时候(即程序还没有部署到tomcat上时),读文件时默认的根目录是项目名称,我这里就是F:/chinacloud/branches/DartCloud,所以整个路径就是
F:chinacloud/branches/DartCloud/conf/dnInfo.properties。
(3)把项目部署到tomcat上时,读文件时默认的根目录是D:/apache-tomcat-6.0/bin,而整个web项目是在D:/apache-tomcat-6.0/webapps/DartCloud下的,所以配置文件就读取不到了。
以前Java用相对路径将监控信息文件写入data目录下也老是出错,很显然,这应该也是一样的原因。
5.今天(2012-7-10)还遇到一个比较诡异的问题。由于开始的时候读取数据库和服务器信息都直接是硬编码的形式写的,我将它改成用配置文件的形式进行读取,但是同样的信息硬编码可以跑起来,而配置文件读取信息的形式却老是出错。后来发现,原来是引号惹得祸。
硬编码打印的连接数据库的正确信息:"jdbc:mysql://192.168.0.64:3306/chinacloud?user=root&password=19861225&useUnicode=true&characterEncoding=utf8"
用配置文件读取后所打印的信息:"jdbc:mysql://192.168.0.64:3306/chinacloud"?user="root"&password="19861225"&useUnicode=true&characterEncoding=utf8