1. 现象
Web Service项目StudyAxis2Test2在eclipse中以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.如下图所示:
甚至当我访问Tomcat首页http://localhost:8080时,仍然是同样的错误。
2. 原因
1) 检查网址有没有输错,大小写等;
2) 项目部署文件夹下有没有index.html或者index.jsp文件;
3) 主页文件,即index.html文件有没有放到正确位置。
项目主页打不开还可以理解,但是为什么Tomcat主页也不能正确打开,这让我有点不解。
而且,当我在项目之外单独运行Tomcat时,Tomcat主页访问正常。后来发现我的项目部署目录不在Tomcat目录中,而是在eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps中。
双击Servers下的Tomcat服务器,打开服务器配置信息,如下图:
以下分别为tmp1和Tomcat的目录结构,可以发现他们的目录结构十分相似,wtpwebapps对应Tomcat的webapps目录,而webapps目录时Tomcat部署项目的目录。
3. 解决
到这里可以大致知道出现这个错误的原因了,应该是没有在项目部署目录下设置主页,下面去验证一下。
进入wtpwebapps目录,可以发现该目录下有一个ROOT目录和项目目录StudyAxisTest2,并且ROOT目录下面没有任何html文件或者jsp文件
将Tomcat目录中webapps\ROOT目录下的文件拷贝到该目录中,关闭服务器,重新在服务器上运行项目。
此时再打开Tomcat主页,可以发现Tomcat主页显示正常,如下:
然而项目主页仍然是404错误,这是因为我们只在ROOT目录下放置了主页,而没有为项目设置主页
随便写一个index.html文件,比如:
<html>
<head>
<title>
test--by Daisy
</title>
</head>
<body>
Hello! Welcome to the axis2 test!
</body>
</html>
将该index.html文件放在tmp1\StudyAxis2Test目录下,刷新页面,可以看到显示正常,如下:
至此问题解决,也可以将项目部署目录放在Tomcat的webapps目录下。