經(jīng)常有一年級(jí)的同學(xué)來反映,下載的EasyJF演示系統(tǒng)安裝后報(bào)404錯(cuò)誤,不知道如何解決,我跑到幾個(gè)同學(xué)的機(jī)器上看了一下,下面把解決問題過程中的情況總結(jié)一下,做成終極解決方案,請(qǐng)仍然還遇到這樣個(gè)問題的同學(xué)借鑒、相互交流一下。
一、問題描述
安裝好EasyJF論壇系統(tǒng)后,按安裝說明配置后,輸http://localhost:8080/bbs/
出現(xiàn)下面的錯(cuò)誤!
HTTP Status 404 - /bbsFirstPage.ejf
--------------------------------------------------------------------------------
type Status report
message /bbsFirstPage.ejf
description The requested resource (/bbsFirstPage.ejf) is not available.
--------------------------------------------------------------------------------
Apache Tomcat/5.0.27
如圖:
二、錯(cuò)誤原因分析
?在Web應(yīng)用中,404錯(cuò)誤表示文件未找到.由于EasyJWeb使用的是java servlet,所以在文件中是沒有bbsFirstPage.ejf類似的文件的,而是通過web.xml文件配置文件映射的。出現(xiàn)在上面的原因不是EasyJF開源項(xiàng)目的代碼不全,而是因?yàn)槟愕膚eb.xml文件沒配置好,或者沒配置對(duì)!
正確的EasyJWeb應(yīng)用中,web.xml文件內(nèi)容如下:
三、為什么會(huì)出現(xiàn)這樣的問題?
只要按照發(fā)給一年級(jí)同學(xué)的安裝說明來操作,比如簡(jiǎn)易Java訂銷管理系統(tǒng)的安裝說明如下所示:
1、JDK1.4.2以上版本(注意配置java_home路徑)
2、安裝tomcat
3、把本訂銷系統(tǒng)中ERP\WEB目錄中的全部?jī)?nèi)容拷貝到tomcat的webapps\ROOT目錄下。
4、數(shù)據(jù)庫安裝
執(zhí)行數(shù)據(jù)庫結(jié)構(gòu)生成腳本。
A、安裝MySql,在MySql Server Config中把數(shù)據(jù)庫默認(rèn)字符集設(shè)置成gb2312,使用My Sql Front:執(zhí)行bbs-mysql.sql。
B、Microsoft Sql Server: 建立數(shù)據(jù)庫EasyErp-> 執(zhí)行mssql.sql;也可以直接通過還原mssql_dababase_bak.db數(shù)據(jù)庫備份文件建設(shè)數(shù)據(jù)庫。
?
5、根據(jù)您的數(shù)據(jù)庫配置情況,修改WEB-INF/class/easyjf-dbo.xml文件配置。
6、啟動(dòng)tomcat,在瀏覽器中輸http://localhost:8080/即可運(yùn)行程序。
若是每一步都按這個(gè)說明來操作,也沒有簡(jiǎn)化,出沒有省略,肯定不會(huì)存在這樣的問題。
?
? 特別是在執(zhí)行第三步:把本訂銷系統(tǒng)中ERP\WEB目錄中的全部?jī)?nèi)容拷貝到tomcat的webapps\ROOT目錄下。系統(tǒng)會(huì)問你要不要替換當(dāng)前已經(jīng)存在的文件,請(qǐng)新同學(xué)們大膽的點(diǎn)‘Yes'吧,放心吧,錯(cuò)了可以重新裝。
出現(xiàn)這樣的錯(cuò)誤很多原因是沒有替換掉web.xml文件。或者是電腦遇到了其它毛病!比如以前裝了Java Web環(huán)境、系統(tǒng)classpath路徑被搞到亂七八遭。唉、有時(shí)候感覺Java還真是折磨新手啊。想想當(dāng)年,我照著書上搞了一個(gè)helloworld都搞了幾星期才順利通過。(哈哈,helloworld這么老土的東西也翻出來了,新手別急,現(xiàn)在都是21世紀(jì)了,只要方法適當(dāng),保證你不會(huì)再犯我同樣的錯(cuò)誤,以后我們會(huì)寫一些新手快速入門的簡(jiǎn)易教程....),扯遠(yuǎn)了哈.......?
四、另外一種404錯(cuò)誤
如下圖所示:
別告訴我你看到上面圖跟第一個(gè)錯(cuò)誤的圖是一樣的哈,那樣我就要批評(píng)你態(tài)度不端正,不認(rèn)真了。哈哈
仔細(xì)看錯(cuò)誤提示:
HTTP Status 404 - Servlet easyjf is not available
--------------------------------------------------------------------------------
type Status report
message Servlet easyjf is not available
description The requested resource (Servlet easyjf is not available) is not available.
--------------------------------------------------------------------------------
Apache Tomcat/5.0.27
注意沒有:"Servlet easyjf is not available”,這句話意思是Servlet不可用,為什么不可用?還真邪門啊!這個(gè)只要你沒改web.xml文件,肯定說明配置是對(duì)了的。那么仍然出現(xiàn)這個(gè)錯(cuò)誤的原因就com.easyjf.web.ActionServlet這個(gè)類不可用,怎么不可用,就是Tomcat要編譯他的時(shí)候找不到這個(gè)類.“我們不是已經(jīng)放到web-inf\lib”中了嗎?是的,是放了,所以我說邪門嘛。
哪兒邪門這里就不用細(xì)細(xì)追究了,以后等同學(xué)們升級(jí)后肯定能自己抓出搗蛋的小鬼的.:-)
這里你就直接把classpath設(shè)置一下,把類似的EasyJWeb0.5.jar文件加到classpath中即可。當(dāng)然也可以直接這web-inf\lib中的文件通通拷到tomcat\common\lib的里面。重啟tomcat,應(yīng)該能OK!
若仍然不能OK,請(qǐng)看本問題的終極解決方案。
五、終極解決方案
若你是一年級(jí)的同學(xué),請(qǐng)你一定要聽我的,按我說的做。若你不是,我想你看了上面的說明后應(yīng)該能解決404錯(cuò)誤問題。
這個(gè)終極解決方案沒有什么特殊的地,其實(shí)很簡(jiǎn)單也是最笨的。請(qǐng)按下面的方法安裝即可:
1、備份c盤的數(shù)據(jù),然后格式化c盤;(可省:-0)
? ?2、在c盤上安裝windows等操作系統(tǒng);(可省:-0)
3、按最前面的安裝說明下載并安裝jdk1.4.2版本,注意選擇安裝在c:\j2se1.4目錄。然后把系統(tǒng)變量中增加一個(gè)classpath項(xiàng),值為c:\j2se1.4。
4、按最前面的安半說明下載并安裝tomcat5.0以上的版本。安裝路徑不要用默認(rèn)的,而是選擇d:\tomcat,完成后取動(dòng)tomcat。
5、刪除d:\tomcat\webapps\ROOT目錄中的所有東西.
6、把下載的系統(tǒng)解壓后拷到d:\tomcat\webapps\ROOT目錄里面.文件結(jié)構(gòu)大致如下d:\tomcat\webapps\ROOT\web-inf\lib\EasyJWeb0.5.jar;若不放心,還可以把下載的web-inf\lib目錄中的所有文件拷到d:\tomcat\common\lib目錄中。
7、重啟動(dòng)tomcat
8、從地址欄中輸http://localhost:8080/bbs/,這下應(yīng)該得行了。
9、若終極方法還不行,你可以考慮把EasyJF核心團(tuán)隊(duì)中的程序員叫過去幫你安裝了。若他們還搞不定,那真是鬼了、休息一周、然后下周重新買一臺(tái)機(jī)器來安裝吧!哈哈,只要有決心,我就不相信你搞不定!
六、結(jié)束語
英國的培根子曾經(jīng)曰,“細(xì)節(jié)決定成敗”(什么,老培同學(xué)沒說過?那一定是我搞錯(cuò)了哈),有些細(xì)節(jié)請(qǐng)大家注意一下,很多同學(xué)下載的代碼可能是從其它下載網(wǎng)下載的,可能版本跟不上,而且其中的Bug可能沒修正。請(qǐng)大家從官網(wǎng)www.easyjf.com下載,并確保把以前的相關(guān)東東都kill掉(朋膽的kill掉,若是修改了東西的可以備份一下再Kill)。代碼將會(huì)根據(jù)反饋情況保持不斷的更新及升級(jí),請(qǐng)有興趣的同學(xué)一定要經(jīng)常關(guān)注我們發(fā)布的新版。