摘要:作為項目開發(fā)人員,千萬不要外部包放到系統(tǒng)目錄和路徑下,這是在為以后埋坑。
源于學(xué)習(xí)用spring十分鐘搭建restful風(fēng)格的web服務(wù)
最近開始著手學(xué)習(xí)spring,按照官網(wǎng)的guide,十分鐘搭建一個restful風(fēng)格的web服務(wù)的hello world,原地址在這里:Building a RESTful Web Service。
一切過程都很順利,直到運行的時候,出現(xiàn)了這個鬼:
第一反應(yīng)是官網(wǎng)的case太老,疏于更新了。這種情況也不是沒有。
但我一看spring的官網(wǎng)這么酷炫,貌似經(jīng)常更新,不應(yīng)該出現(xiàn)這么低級的錯誤。
就我的經(jīng)驗來看,這種問題,一般都是jar的版本問題導(dǎo)致的。
而對于servlet來說,就有兩種情況,要么是servlet包太老,要么就是servlet容器太老。
我google一下,在stackoverflow上,對于同一個問題,看到這么一個答案:
按照其解決步驟:
我查看了一下servlet容器,spring的demo里面是內(nèi)置tomcat8的,所以不存在容器問題,那么只可能是servlet包問題了。
這個時候第三個步驟:
千萬不要把servlet-api.jar或者j2ee.jar放在/WEB-INF/lib里,更糟糕的是放在JRE/lib或者JRE/lib/ext里面,這是新手常犯的錯誤。
看到這里,我第一反應(yīng)是檢查了classpath的路徑,果然在一個路徑下發(fā)現(xiàn)有躺著一個servlet.jar,不知道什么時候放上去的。
移除掉這個jar,再運行就成功了。
稍微有點遺憾的是,那位大神沒解釋原因。
我仔細回想了一下,大學(xué)時曾看過一些JVM類加載的問題,順便找到了這篇文章:
深入研究Java類加載機制
詳細請看那篇文章,這里簡單總結(jié)下:
JVM會優(yōu)先加載系統(tǒng)lib或者用戶自己配置的classpath下的jar包,然后再加載項目中的jar包。作為項目開發(fā)人員,千萬不要外部包放到系統(tǒng)目錄和classpath路徑下,這是在為以后埋坑。
有一個小tips:
對于eclipse,最好選擇eclipse自帶的servlet容器,其操作方式是:
右鍵項目 ---> Properties ---> Java Build Path ---> Add Library... ---> Server Runtime ---> J2EE Priview(當(dāng)然,如果你需要配置自己的tomcat,在這里選擇tomcat即可) ----> Finish.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64368.html
摘要:,到現(xiàn)在為止一切都按部就班,執(zhí)行上面的命令正常運行,讀取里面的文件,并輸出相應(yīng)的屬性。那么,如果我們想改變配置文件的內(nèi)容是否需要修改源文件里的然后重新打包成呢顯然這樣做太麻煩也不太合理,你可以在外面配置一個新的讓里的去讀取。 Java中經(jīng)常要用到各種配置文件xxx.properties來控制程序的運行或進行國際化等但是也常常遇到配置文件放置路徑找不到的問題,這里以java.uitl.R...
摘要:本文章記錄本人在深入學(xué)習(xí)條件表達式中看書理解到的一些東西,并且整理記錄下來,加深記憶和方便之后的復(fù)習(xí)。表達式的值具有線性特征,如對連續(xù)的區(qū)間值進行判斷。 本文章記錄本人在深入學(xué)習(xí)js條件表達式中看書理解到的一些東西,并且整理記錄下來,加深記憶和方便之后的復(fù)習(xí)。主要是深入學(xué)習(xí)if else和switch語句的一些性能優(yōu)化和邏輯思維。 提高條件性能的策略 js的條件表達式和其他語言一樣...
摘要:第一次寫技術(shù)文章,主要內(nèi)容是使用創(chuàng)建一個簡單的項目,如有操作或理解錯誤請務(wù)必指出,當(dāng)謙虛學(xué)習(xí)?;舅枷肫鋵嵕褪且粋€項目引用別的模塊包,最終項目被打成包發(fā)布。 第一次寫技術(shù)文章,主要內(nèi)容是使用maven創(chuàng)建一個簡單的SpringMVC WEB 項目,如有操作或理解錯誤請務(wù)必指出,當(dāng)謙虛學(xué)習(xí)。做這一次的工作主要是因為想加強一下自己對Spring Web 項目的理解,因為平時都是直接寫業(yè)務(wù)代...
閱讀 2815·2021-11-16 11:45
閱讀 1689·2021-09-26 10:19
閱讀 2082·2021-09-13 10:28
閱讀 2847·2021-09-08 10:46
閱讀 1690·2021-09-07 10:13
閱讀 1563·2019-08-30 13:50
閱讀 1438·2019-08-30 11:17
閱讀 1482·2019-08-29 13:18