Tomcat , Eclipse , 404错误

今天做了WEB开发环境的配置,WINDOS+JAVA+TOMCAT+ECLIPSE 。配置完Tomcat之后,localhost:8080 访问正常。

但是在Eclipse中添加一个动态网站的项目,写了一个JSP文件,然后Run on Server 总是提示:

404

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

在网上找了很久,众说纷纭,看得头都晕。 但是有一点是肯定的,就是Eclipse中服务器的Server Locations 选项默认是选择第一项,而且不能更改,看下面图中红框里的部分。

Tomcat , Eclipse , 404错误

问题确实就是出在这里,应该是选择第二项,至于要如何才能使这里的选项可以更改,网上已经说得很清楚,是因为当前服务器已经挂载了项目,所以不能更改,所以要先移除挂载的项目,对着服务器点击右键,选择Stop,关闭服务器,再点击右键, 选择 Add and Remove , 如下图所示:

Tomcat , Eclipse , 404错误

在弹出的窗口中 ,把右侧列表中已经加载的项目全部移除,这个就不上图了,一看就明白的,移除之后点击 finish 。

然后右键服务器选择Start ,启动服务器,当服务器启动完成,再次双击服务器,在弹出的页面中就会发现,嘿。。可以改了。

然后选择第二项,当选择了第二项时,Server Path 就会自动填充当前tomcat的安装路径,而且还不能更改。然后保存,挂载项目,为了保险,又对服务器进行了一次关闭再重启操作。嘴里叫嚣着:让我们见证奇迹吧!!!!!!

结果..................

404 404 404 404 404

这让我想起了草原上那种动物,成群结队的样子。。。

没办法,再次找到度娘,在一个一个的页面看过去,突然在一个页面上看到一句话:Eclipse项目没有发布到tomcat中。这句话

就像天籁之音在脑海回响,然后我赶紧跑去我的tomcat安装目录里面看,结果是令人失望的。那个项目的文件夹就安安静静的躺在那里,然后我就想啊 localhost:8080都可以正常显示,为什么我的jsp就显示不出来呢?那个localhost:8080的页面在哪里呢?我就去找,然后在tomcat目录下的webapps\ROOT下看到了,我就想做一个测试。我把我写的JSP文件拷贝到了这个ROOT文件夹下面,然后在浏览器中输入了 localhost:8080\xxx.jsp 。页面显示出来了,我感觉我找到问题的原因。就是我的Eclipse中加载的项目发布到tomcat中的位置有问题。不应该出现在tomcat的根目录下。可是它为什么就出现在那里了呢。

然后我想到一个地方,看下面图:

Tomcat , Eclipse , 404错误

当时我选择了第二项之后,看到下面这个路径,也不知道是什么意思,我就把它设置成了Eclipse的工作空间文件夹所在的路径,结果没有卵用,我又换成了tomcat的安装目录,结果还是没卵用。但是现在,我觉得就是这里设置的问题。

为了验证我的想法,我把tomcat根目录中已经生成的项目文件给删除,然后服务器上已经挂载的项目也删除,回到最开始的状态,重新加载项目,每做一步,我就去看tomcat根目录里面会不会出现项目文件夹,最后发现,是在服务器加载项目后启动时,项目文件夹会被发布到tomcat的根目录中。

于是我修改了红框里的路径,将它设置为localhost:8080页面所在的目录,也就是tomcat根目录下webapps\ROOT 。

Tomcat , Eclipse , 404错误

然后重新加载项目。启动服务器,果然,项目的文件夹出现在了ROOT目录下面。

然后就是浏览器     localhost:8080/项目文件夹名/XXX.jsp  

当当当。。。。撒花。。。

总结:Eclipse新建的页面文件的是怎么和tomcat扯上关系的?就是Eclipse会把项目文件复制一份到tomcat的目录中,当然这个目录是需要设置的,如果目录设置错误,那么文件就会发布到错误的地方,tomcat在该找的地方找不到,那就只能404咯。

PS:中途还有一些问题,比如tomcat的端口被占用,这个比较逗,我以为是被其他程序占用了,然后跑去修改了tomcat  server.xml中的端口号,其实后来发现,是自己从tomcat里面启动了服务器,就是那个 startup.bat文件,还把它最小化到了任务栏,又在Eclipse中去启动服务器,就相当于是开了两个配置相同的服务器,端口不被占用才怪。

另一个问题是写了jsp文件保存时,报错。说找不到java.sevlet什么的。后来是在网上找到了解决方法,就是个项目文件添加服务器路径,截图留存吧。

Tomcat , Eclipse , 404错误

华丽的分割线--------------------------------------------------------------------------------------------------

Tomcat , Eclipse , 404错误

华丽的分割线---------------------------------------------------------------------------------------

Tomcat , Eclipse , 404错误

-------------------------------PS-----------------------

在配置Java环境变量的时候,也遇到个奇葩事件:

买来的书上面说path路径后面需要添加 %JAVA_HOME%\bin  就可以了,结果我做了,javac始终用不了,反反复复的看我的配置,一个一个字母看过去,没错啊。。头大,然后去看了度娘。我去。。原来 还要加一节:%JAVA_HOME%\jre\bin

当时心里就想到一句话:尽信书不如无书。。。。

最后的PS:

这是我第一次发博客啊,要转载的要注明出处哦。否者追究法律责任哦!我看别人都这么说。。。

----------------------------------------------------------------------------------------后来

我发现,那个eclipse设置的发布路径,其实还是只应该选为webapps,这是一个tomcat服务器挂在的所有网站的根目录,默认的tomcat上已经有好几个网站,比如examples,docs都是默认自带的,ROOT也是其中一个。