刚刚碰到一个坑,本地Eclipse启动了tomcat,调用接口就是404,一直怀疑是url问题,改来改去还是404。最后发现还真是url问题,问题不在接口路径,而是项目名。因为接口路径用的是RESTful的,所以直接是ip端口后加服务名和方法名,多了一个项目名当然就找不到服务了。
如果是Eclipse启动的tomcat,打开tomcat的Servers窗口->双击tomcat图标或者右键单击该图标再选择Open->选择左下方的Modules->选中web项目,点击右边的Edit按钮->将Path里的项目名去掉,只留下空字符串->保存后重启tomcat。
如果是tomcat已经部署到环境上的情况,需要到server.xml文件中修改,比如我的war包名是wlf,那么配置如下:
<Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="true">
<Context docBase="wlf" path="" reloadable=""/></Host>
docBase里wlf是相对webapps的目录而言的,也可以直接写绝度路径。
如果不想改server.xml,那么更直接的是把war包解压到ROOT目录下,或者把wlf.war放到webapps目录下并改名为ROOT.war,再删掉ROOT目录重启tomcat即可。