項目開發(fā)管理端后臺程序,要換成JFinal框架,在搭建Demo框架完成后侥袜,Run As 項目中的Config文件后蝌诡,提示80端口被占用。
好了系馆,問題簡單粗暴送漠,解決80端口就OK了顽照。
真的簡單由蘑?Really粗暴?No代兵! 下面是復(fù)雜的解決過程……
1尼酿、先看看什么是80端口,它和8080植影、8001等端口有何區(qū)別裳擎?
80端口是為HTTP(HyperText Transport Protocol)即超文本傳輸協(xié)議開放的,此為上網(wǎng)沖浪使用次數(shù)最多的協(xié)議思币,主要用于WWW(World Wide Web)即萬維網(wǎng)傳輸信息的協(xié)議鹿响。可以通過HTTP地址(即常說的“網(wǎng)址”)加“:80”來訪問網(wǎng)站谷饿,因為瀏覽網(wǎng)頁服務(wù)默認(rèn)的端口號都是80惶我,因此只需輸入網(wǎng)址即可,不用輸入“:80”了博投。--百度百科
也就是說绸贡,只要我們想上網(wǎng),就必須開放80端口毅哗。在有的解決80端口被占用的方案中听怕,發(fā)現(xiàn)有的文章建議關(guān)閉Http Service,簡直是Kidding me……
8080虑绵、8001等端口其實本質(zhì)上沒什么區(qū)別尿瞭,而且它們本身無實際意義,只是用于代理服務(wù)器端口來代理服務(wù)翅睛,如tomcat声搁、nginx、IIS等宏所。大部分服務(wù)提供方都默認(rèn)使用8080端口用于WWW代理服務(wù)酥艳,因此經(jīng)常會發(fā)現(xiàn)8080端口被占用的情況。但我們可以通過配置文件修改爬骤,如改成8001等充石。
2、如何解決的端口占用霞玄?
首先骤铃,看看到底是誰占用了80端口:查看80端口占用方法拉岁。發(fā)現(xiàn)是System占用了,System是什么鬼惰爬?系統(tǒng)進(jìn)程昂芭!
頓時有些懵~ 好吧撕瞧,繼續(xù)go陵叽,在任務(wù)管理器中找到System進(jìn)程后,選中丛版,結(jié)束進(jìn)程巩掺,發(fā)現(xiàn)并沒有什么效果。
百度页畦,在dos窗口結(jié)束該進(jìn)程的方法胖替,依然無效。后來查了一下System進(jìn)程豫缨,發(fā)現(xiàn)他是Windows頁面內(nèi)存管理進(jìn)程独令,擁有0級優(yōu)先權(quán),沒有它系統(tǒng)無法啟動好芭。 也就是說燃箭,System進(jìn)程是無法關(guān)閉的,如果你強(qiáng)行結(jié)束system進(jìn)程樹會直接導(dǎo)致藍(lán)屏栓撞。頭破血流過來的遍膜,您就不要試了吧~
后來猜想可能是IIS占用的,于是關(guān)閉了IIS中的應(yīng)用瓤湘,如圖:
運行Eclipse下的demo瓢颅,依然被占用……
后來朋波也遇到了這個問題,發(fā)現(xiàn)是SqlServer的Reporting Service占用了這個端口弛说,就停止了該報表服務(wù)挽懦。
然后運行Demo,就解決了這個問題木人,成功解除了80端口占用信柿。
對于Windows系統(tǒng)專用的,像IIS醒第,或者微軟公司的產(chǎn)品渔嚷,如SQLServer,感覺都怪怪的稠曼。他們雖然占用了80端口形病,但在進(jìn)程列表中并不顯示出來。
3、后續(xù)……
demo運行成功了漠吻,于是停止Eclipse對它的服務(wù)量瓜,然后引入實際的項目程序,再次運行發(fā)現(xiàn)還是80端口占用M灸恕I馨痢!
好吧耍共,已經(jīng)無語了烫饼。
于是繼續(xù)執(zhí)行查看80端口的進(jìn)程,發(fā)現(xiàn)是javaw.exe占用了該端口划提。這次問題就比較明朗了枫弟,肯定是上面的demo占用了80端口沒有釋放,于是刪除了demo鹏往,再執(zhí)行項目就沒問題了,試了幾次都保持success骇塘。
小結(jié):解決這個問題的過程反映出我們分析和解決問題時要從多角度考慮:有那些解決思路:無腦百度伊履、問題分析等。理清問題中的“節(jié)點”:如80端口是什么款违、System進(jìn)程是什么唐瀑、什么運行環(huán)境下產(chǎn)生的問題。這樣我們就會做到遇事不亂插爹、心中有數(shù)哄辣。