Idea部署ssm web项目时出现404问题
今天在本地部署web项目时出现404的错误,使用Idea开发,找到了解决办法。
Tomcat部署配置如下:
其中deployment选择war_exploded
运行之后报错404,发现访问的链接是
http://localhost:8080/dbsys/forward/displayLogin
但是部署配置时的地址是:
http://localhost:8080/dbsys_war_exploded/
地址不一致所以导致404
解决办法:
- 把地址改成如下访问
http://localhost:8080/dbsys_war_exploded/forward/displayLogin
2.在deployment处修改ApplicationContext的名称为dbsys,就可以正常运行了:
但是根本原因最终发现是由于web.xml默认启动的<welcome-file-list>中的index.jsp的内容如下:
所以无论启动的时候默认tomcat启动的地址是什么都会跳转到这个地址请求,就导致不一致,出现404问题。
在tomcat配置过程中发现,artifact有两种分别是war以及war exploded,通过网上资料查询发现二者主要区别在于:
war:项目会打包war包再发布,war包默认会在target目录下,而且部署的服务器的webapps文件夹下,会存在配置的Application context目录,其中包含项目的webapp下的内容以及一个META-INF。如图所示:
war exploded:则不会把项目发布到配置的服务器中,也不会打一个war包,而是会把webapp下的相关文件放在项目build后的target目录下,同时包含一个META-INF,该方式可以进行热部署。