這是寶寶第一次在技術網站上發帖,此次必需要寫一下了- -。java
以前一直在用tomcat6,因爲要用到webSocket無奈把tomcat升級到了8,可是一直提示404,參考了一些網上的資料後試着改了一夜終於弄好了,下面把方法分享出來,但願小夥伴們少走彎路吧⊙﹏⊙‖∣web
1.右鍵項目(Eclipse)->Propperties->Project Facets->Dynamic Web Module 改爲3.1,若是不能修改請優先修改其下方Java對應版本,我用的是1.7的JDK,則改成1.7,不然會提示相似「Dynamic Web Module *.* requires Java *.* or newer.」的錯誤。
若是依然不能修改,找到以下文件並修改:
"X:\workSpace\projectName\.settings\org.eclipse.wst.common.project.facet.core.xml"tomcat
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="java"/> <fixed facet="jst.web"/> <fixed facet="wst.jsdt.web"/> <installed facet="wst.jsdt.web" version="1.0"/> <installed facet="jst.web" version="3.1"/> <installed facet="java" version="1.7"/> </faceted-project>
2.修改Web.xml配置文件,由於以前是tomcat6和JDK1.6建立的,因此咱們須要對老版本Web.xml進行修改,老版本頭部以下:app
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> </web-app>
咱們改成:框架
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1" metadata-complete="true"> <!-- 這裏放filter --> <display-name>[your project name]</display-name> <description> [your project description] </description> <!-- 這裏放jsp-config和index 404等錯誤頁 --> </web-app>
注意上面寫的時候不要帶"[ ]"方括號eclipse
3.咱們把eclipse中項目close而後重新打開並從新構建~這樣再放到tomcat8中部署就正常了jsp
4.(送點小經驗⊙﹏⊙)我我的喜歡虛擬目錄方式部署,在不修改Server.xml和複製class到tomcat中的同時能夠直接看到的最新結果
打開你的Tomcat目錄並找到"Tomcat\conf\Catalina\localhost"目錄,沒有能夠本身手動建立文件夾,並在其目錄下建立ROOT.xml並編輯,內容以下:網站
<?xml version="1.0" encoding="UTF-8"?> <Context path="/" docBase="X:\workSpace\projectName\WebRoot" crossContext="true" debug="3" privileged="true" reloadable="true" deubt="true"> </Context>
這樣咱們經過eclipse啓動tomcat(非自帶tomcat控件,具體能夠本身來百度關鍵詞爲"com.sysdeo.eclipse.tomcat_3.3.1.jar")的時候就能夠直接對eclipse中代碼進行斷點跟蹤了ui
這裏還要補充下:虛擬目錄的部署方式是爲了模擬生產環境中的url結構,這樣能夠不用在http://localhost:8080/projectName/的方式進行項目訪問,而是http://localhost:8080/,固然若是你把8080端口改爲80就跟生產環境如出一轍了,但缺點也很明顯,頂級域只能部署一個項目,若是須要切換項目,這裏也有個小竅門:url
將前面建立好的ROOT.xml複製一份改成「ROOT.xml.test」,並將其中的路徑指定爲第2個項目的WebRoot或WebContent下,由於.test後綴tomcat並不會識別和生效,這樣咱們切換項目只要打開這個配置文件目錄,把後綴一改就能夠了。
最後,感謝OSChina 、 JAVA極速WEB+ORM框架 JFinal 項目以及JFinal 2k羣中全部幫助過個人小夥伴們!