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框架 閱讀(1535)
評論(0) 編輯 收藏