tomcat6升级tomcat8后虚拟目录部署404的解决办法

这是宝宝第一次在技术网站上发帖,此次必需要写一下了- -。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群中全部帮助过个人小伙伴们!

相关文章
相关标签/搜索