EasyDBO由于一直没有改进,所以前期出现的错误很多,也是造成很多用户无法正常运行EasyJF论坛系统、简易java订销管理系统等有关EasyJF数据应用的问题。经常遇到数据源连接不正确、程序运行不正确、中文乱码等问题。下面把我看到的很多同学机器上的问题总结归类一下,作为终极解决之道,大家还遇到类似的问题请参照一下该帖子的中的错误解决方案,诊断原因,也可以直接按照终极解决方法解决遇到的问题。
一、先说终极解决之道
EasyJF开源团队从组建以来,已经发布了比较完整的三个应用实例,即EasyJF论坛系统、Meybo Mail Web客户端开源简化版以及简易Java开源订销管理系统,其中EasyJF论坛系统及开源订销管理系统都用到了数据库,而这两个系统也是大家反映问题最多。根据最近见到的各种问题,并搜集了大家在工作论坛中的交流情况,这里归类整理一下所有的问题。
以供还没有安装好EasyJF开源实例的朋友以及准备安装的朋友参考。精力是有限的,时间是宝贵的,希望能少走点弯路。
由于EasyDBO还是处于测试版阶段,所以容错能力比较差,因此造成安装过程中出现这样那样的问题在所难免。当然,造成无法正常安装及应用的原因主要不是所发布的代码问题,更多的是属于安装者具体环境的问题。若是一台从来没有安装过Java Web应用环境的机器,只要用户按照我们的提供的最简单的安装说明来安装,肯定能正常运行。还有很多是因为数据库安装不当所造成的问题。
这里所说的终极解决之道,就是使用最笨的方法来安装,虽然笨,而且很费力,但肯定能装好。:-)
步骤如下(注意路径也不能随便省):
1、备份c盘的数据,然后格式化c盘;(可省:-0)
2、在c盘上安装windows等操作系统;(可省:-0)
3、按安装说明下载并安装jdk1.4.2版本,注意选择安装在c:\j2se1.4目录。然后把系统变量中增加一个classpath项,值为c:\j2se1.4。
4、按最前面的安半说明下载并安装tomcat5.0以上的版本。安装路径不要用默认的,而是选择d:\tomcat,完成后取动tomcat。
5、删除d:\tomcat\webapps\ROOT目录中的所有东西.
6、把下载的系统解压后拷到d:\tomcat\webapps\ROOT目录里面.文件结构大致如下d:\tomcat\webapps\ROOT\web-inf\lib\EasyJWeb0.5.jar;若不放心,还可以把下载的web-inf\lib目录中的所有文件拷到d:\tomcat\common\lib目录中。
7、安装数据库系统.若是安装MS SQL2000,则必须打上补丁3或以上的版本.注意是Sql的补丁,而不是其它的什么分析服务补丁。MS SQL不打补丁的话,jdbc是跑不起来的.
8、使用数据库的管理工具(My SQL的话使用My Sql Front,MS SQL数据库直接使用他的管理器)建立数据库。然后把下载源码中提供的数据表结构生成脚本,否则库及表都没有是跑不起来。
9、修改d:\tomcat\webapps\ROOT\web-inf\classes\easyjf-dbo.xml文件,这个文件是有关你的应用程序的数据库配置文件,特别是用户名、密码及数据库名要根据你实际安装的来。配置文件的设置方法请按"EasyDBO配置文件easyjf-dbo.xml详细说明”这篇文章来配置。地址http://www.easyjf.com/html/20060427/31970563-6771387.htm
10、重启动tomcat
11、从地址栏中http://localhost:8080/bbs/,这下应该得行了。
12、若终极方法还不行,你可以对照一下你所出现的问题,参考后面提供的各种问题的解决方案来找到问题所在,并作相应的处理。仍然不行的话你叫到官网上叫人过去帮你安装了。若他们还搞不定,那真是鬼了、休息一周、然后下周重新买一台机器来安装吧!哈哈,只要有决心,我就不相信你搞不定!
备注:
已经确认因为我们的文档失误而造成的错误可以这在里看到http://www.easyjf.com/html/bbs/20060419/23993816-1316542.htm
另外,关于数据库名字中间不有特殊符号实句号“.”。如数据库名为easyjf.com是错的,而easyjf就OK。
二、EasyDBO没有配置正确或者驱动没正确安装引起的错误
问题表现:
1、安装好论坛系统,能进入主界面,但注册总是失败
2、安装好论坛,若使用My SQL数据库,firtPage.ejf出现报错信息
3、安装好简易订销管理系统,但无法正常登录。
常见的错误提示
EasyJWeb框架错误:
java.lang.Object
java.lang.ClassCastException: java.lang.Object
at com.easyjf.bbs.business.BBSUtil.getTotalMember(BBSUtil.java:37)
at com.easyjf.bbs.action.FirstPageAction.execute(FirstPageAction.java:38)
at com.easyjf.web.RequestProcessor.getResult(RequestProcessor.java:90)
at com.easyjf.web.RequestProcessor.process(RequestProcessor.java:65)
at com.easyjf.web.ActionServlet.doRequest(ActionServlet.java:114)
at com.easyjf.web.ActionServlet.doGet(ActionServlet.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
在以前发布的系统中,特别是EasyDBO0.2以前的版本,由于本身存在很多Bug,所以造这样的错误的概念是比较大的,造成这样的问题的时候一个主要原因是easyjf-dbo.xml文件没配置对,另外一个原因是由于你所安装机器的某些特殊性,造成classpath比较混乱,也或许是EasyDBO的一些Bug。
这里主面讲第一个原因。
easyjf-dbo.xml文件的位置放在web-inf\classes\easyjf-dbo.xml,由于我们提供给大家的是源代码src目录下也有一个easyjf-dbo.xml文件。所以若你是用记事本改的话要直接修改的话直修改classes\easyjf-dbo.xml文件即可。修改首先要保证文件格式正确,即用IE打开可以正常显示;其次就是相应的设置要正确,即用户名、密码、数据库名要跟你所安装的一致,修改后要重新启动web服务器tomcat。
配置不正确的另外一个原因是有可能你的EasyDBO是使用0.2以下的版本,这个版本不支持中文路径或者含有特殊格式字符的路径。请把相关的EasyDBO.jar全部删除掉,直接下载一个新的_0.4.0版本的jar文件,放到classpath中即可。
三、ClassPath路径不正确
1、问题表现:
a、打开程序报下面的错误
java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
com.easyjf.dbo.DataSourceManager.init(DataSourceManager.java:44)
com.easyjf.dbo.config.XMLConfigFactory.initDataSource(XMLConfigFactory.java:91)
com.easyjf.dbo.config.XMLConfigFactory.init(XMLConfigFactory.java:55)
com.easyjf.dbo.config.DBOConfig.init(DBOConfig.java:36)
com.easyjf.dbo.config.DBOConfig.getDataSource(DBOConfig.java:53)
com.easyjf.dbo.DataSourceManager.getDataSource(DataSourceManager.java:65)
b、本来easyjf-dbo.xml文件设置的数据库是用MS SQL,但启动的时候日志中发现如下的错误信息:
“数据库类型(方言)配置错误,系统将使用默认MySQL数据类型方言!”,前面还有提示某个Class找不到的错误信息。
2、问题分析及解决
造成这些问题的原因有很多,由于Java的东西太多了,相应的软件也很多,大家可能之前也在运行其它的东西,可以Web服务器的版本,JDK的版本,ClassPath的设置等都各式各样。以致无法正常加载一些类,这不是我们提供的下载源码中少什么文件,而只要把classpth设置正确即OK。
这里不说具体怎么设置类路径,由于Web服务器启动的时候会把某个目录下的所有类加载到classpath中,比如tomcat\common\lib中所有类。因此,你只需要把所有有关的数据库驱动、数据库连接池、EasyDBO、EasyJWeb等相关的jar文件全部拷到comcat\common\lib目录中即可。若提示已经存在则直接替换掉即可。
另外一个重要的注意事项是,是管是tomcat\common\lib中,还是web-inf\lib中,必须保证只有一个EasyDBO_xx.jar,即保留最新版本的那个,其它版本的EasyDBO必须删除掉。
四、数据库安装不正确的错误
这个主要针对很多新手,特别是Java Web新手。
安装数据库的时候有几点需要注意:
1、安装MS SQL的话,在选择身份验证方式的时候,不要选择“仅windows验证”,而是选择“Sql Server和windows”。
2、安装MS SQL的话,必须安装SP3或以上sql 补丁,否则jdbc是无法连接你所装的数据库的。
3、安装My SQL的话,需要把默认字符集设置成gbk(论坛)或gb2312(简易订销管理系统)。
数据库安装不正确,就不可能正常连接数据库,不能正常连接数据库就无法正常使用EasyDBO,不能正常使用EasyDBO也就不能正常使用我们提供的源代码。“我的神啊........”
五、My SQL中文乱码的错误
EasyDBO本身不存在中文乱码问题的,按照我们提供的安装说明及配置文件的话,MS SQL是不可能有乱码问题。中文乱码问题到目前为止我们只在My SQl中见到,这个需要设置My SQl数据库的默认字符集,需要把默认字符集设置成gbk(论坛)或gb2312(简易订销管理系统)。
详情请参照:
http://www.easyjf.com/html/bbs/20060325/1638923979008732.htm
设置默认字符集有一个细节,大家注意看下面两幅图的区别:
图二
六、主键生成算法的错误(谢谢beyond同学提供)
问题表现:
安装好论坛后,但是就是不能回贴(回贴时数据添加不到数据库里)
解决办法:
EasyDBO中的主键生成算法我只随便写了一个的,新版本中的主键生成使用com.easyjf.dbo.RandomIdGenerator。可能这个实现有点问题,没太多测试过,也许存在致命错误。
其中内容如下:String id=this.hashCode()+""+date.hashCode();
//System.out.println(id);
return id.substring(0,16);
3、仿照RandomIdGenerator自己实现一个IIdGenerator生键生成器,然后把PO中的getKeyGenerator方法改成你自己的主键生成器。
public String getKeyGenerator() {
return "com.easyjf.dbo.RandomIdGenerator";
}
详情请参照:
beyond同学写的“安装EasyJFbbs遇到的几个问题及解决” http://www.easyjf.com/html/bbs/20060414/7430873-17461327.htm
posted on 2006-05-16 01:01
简易java框架 阅读(1533)
评论(0) 编辑 收藏