剛剛碰到一個坑,本地Eclipse啟動了tomcat,調用接口就是404,一直懷疑是url問題,改來改去還是404。最后發現還真是url問題,問題不在接口路徑,而是項目名。因為接口路徑用的是RESTful的,所以直接是ip端口后加服務名和方法名,多了一個項目名當然就找不到服務了。
如果是Eclipse啟動的tomcat,打開tomcat的Servers窗口->雙擊tomcat圖標或者右鍵單擊該圖標再選擇Open->選擇左下方的Modules->選中web項目,點擊右邊的Edit按鈕->將Path里的項目名去掉,只留下空字符串->保存后重啟tomcat。
如果是tomcat已經部署到環境上的情況,需要到server.xml文件中修改,比如我的war包名是wlf,那么配置如下:
<Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="true"> <Context docBase="wlf" path="" reloadable=""/></Host>
docBase里wlf是相對webapps的目錄而言的,也可以直接寫絕度路徑。
如果不想改server.xml,那么更直接的是把war包解壓到ROOT目錄下,或者把wlf.war放到webapps目錄下並改名為ROOT.war,再刪掉ROOT目錄重啟tomcat即可。