今天在eclipse中新建了tomcat server,但是由于一些配置出了问题,导致总是出现404报错,具体情况如下

症状:

tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误。同时其他项目页面也不能访问。

关闭eclipse里面的tomcat,在tomcat安装目录下双击startup.bat手动启动tomcat服务器。访问htt://localhost:8080/能正常访问tomcat管理页面

然后我去搜索了一下,找到了这篇blog,http://blog.csdn.net/wqjsir/article/details/7169838

里面说

症状原因:

eclipse将tomcat的项目发布目录(tomcat 目录中的webapp)重定向了,所以你会发现在tomcat安装目录下的webapp目录里面找不到你的项目文件。

-------------------2013-12-27重新编辑:-------------------

  感觉之前写的废话好多,简直无语,长话短说,解决方案就是:在eclipse中双击你配置好的服务器,然后:

  1、如果你选择了Use Tomcat installation选项,那么你就要注意,配置好“%CATALINA_HOME%/conf/server.xml”(里面的docBase要指向你的web-content的根目录,在这里,我的是E:\web.workspace\mldndemo\WebContent,即WEB-INF文件夹在这个目录下),并且把Deploy path设置为webapps

  2、如果你选择了Use workspace metadata选项,那么就保持其默认设置,并且配置好“[eclipse的workspace目录]/Servers/Tomcat-v6.0-Server-at-localhost-config/server.xml”(docBase在这里是E:\web.workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ROOT,WEB-INF文件夹在这个目录下,并且注意,把你写的jsp和html页面拷贝到这个目录下),并且把Deploy path设置为wtpwebapps

-------------------下面是以前写的详细内容-------------------

然后呢,我就双击在eclipse中建立的tomcat server,看到如下信息

eclipse新建tomcat server但是总是报404的解决方法-LMLPHP

你可以看到,eclipse把所有的配置文件全部放到了当前workspace的子目录中,而不是像一般情况下给放到tomcat的安装目录下,对于我目前的情况,就是在这个目录下

eclipse新建tomcat server但是总是报404的解决方法-LMLPHP

好,那我就按照他说的方法,把路径改成如下,这样就指向tomcat安装目录中的路径了吧?

eclipse新建tomcat server但是总是报404的解决方法-LMLPHP

但是,情况是什么呢?还是404

eclipse新建tomcat server但是总是报404的解决方法-LMLPHP

后来我就去检查%CATALINA_HOME%/conf/server.xml,诶?里面居然没有配置<Context path="" docBase=""></Context>

我以前可是配置好了的!

其实呢,原因就是我在上面设置Use Tomcat installation的时候,eclipse把%CATALINA_HOME%/conf/server.xml给替换了,替换成了谁呢?看下图,这个server.xml是在我的workspace目录里面的/conf文件夹中的,上面已经说过了,但是尽管这个server.xml与%CATALINA_HOME%/conf/server.xml不是同一个,但是只要你配置为Use Tomcat installation,你在这个server.xml中所做的任何修改都会被反映到%CATALINA_HOME%/conf/server.xml中!也就是说eclipse帮你同步了这两个文件的内容!

但是要注意,eclipse仅仅会在你修改了Server Locations选项之后,并且重启了服务器,才会进行这个同步!

eclipse新建tomcat server但是总是报404的解决方法-LMLPHP

好吧,重新写上去(随便你写到哪个server.xml中都可以,因为在当前配置下,eclipse会帮你同步这两个文件的内容,但是要注意,这个同步是单向的,不是双向的,也就是说,你修改%CATALINA_HOME%/conf/server.xml,eclipse不会将其内容同步到/Servers/Tomcat-v6.0-Server-at-localhost-config/server.xml中),重启服务器,嗯,现在再看,可以用了

==============================

Ps:

实际上呢,我上面提到的那个blog没说中要点,最根本的原因还是server.xml没有被配置好,你完全可以选择就用Use workspace metadata配置,也不要把wtpwebapps修改为webapps,你只需要把上图中的/Servers/Tomcat-v6.0-Server-at-localhost-config/server.xml给配置好(主要是加上<Context>)就行了。

========================================================

总之,如果你选择了Use Tomcat installation选项,那么你就要注意,配置好%CATALINA_HOME%/conf/server.xml(里面的docBase要指向你的web-content的根目录,在这里,是E:\web.workspace\mldndemo\WebContent,即WEB-INF文件夹在这个目录下),并且把Deploy path设置为webapps

如果你选择了Use workspace metadata选项,那么就保持其默认设置,并且配置好/Servers/Tomcat-v6.0-Server-at-localhost-config/server.xml(docBase在这里是E:\web.workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ROOT,WEB-INF文件夹在这个目录下,并且注意,把你写的jsp和html页面拷贝到这个目录下),并且把Deploy path设置为wtpwebapps

05-11 15:11