Idea部署ssm web项目时出现404问题

今天在本地部署web项目时出现404的错误,使用Idea开发,找到了解决办法。

Tomcat部署配置如下:

 

Idea部署ssm web项目时出现404问题

 

其中deployment选择war_exploded

Idea部署ssm web项目时出现404问题

运行之后报错404,发现访问的链接是

http://localhost:8080/dbsys/forward/displayLogin

但是部署配置时的地址是:

http://localhost:8080/dbsys_war_exploded/

地址不一致所以导致404

 

Idea部署ssm web项目时出现404问题

解决办法:

  1. 把地址改成如下访问

http://localhost:8080/dbsys_war_exploded/forward/displayLogin

2.在deployment处修改ApplicationContext的名称为dbsys,就可以正常运行了:

Idea部署ssm web项目时出现404问题

 

但是根本原因最终发现是由于web.xml默认启动的<welcome-file-list>中的index.jsp的内容如下:

Idea部署ssm web项目时出现404问题

 

所以无论启动的时候默认tomcat启动的地址是什么都会跳转到这个地址请求,就导致不一致,出现404问题。

在tomcat配置过程中发现,artifact有两种分别是war以及war exploded,通过网上资料查询发现二者主要区别在于:

war:项目会打包war包再发布,war包默认会在target目录下,而且部署的服务器的webapps文件夹下,会存在配置的Application context目录,其中包含项目的webapp下的内容以及一个META-INF。如图所示:

Idea部署ssm web项目时出现404问题

Idea部署ssm web项目时出现404问题

Idea部署ssm web项目时出现404问题

war exploded:则不会把项目发布到配置的服务器中,也不会打一个war包,而是会把webapp下的相关文件放在项目build后的target目录下,同时包含一个META-INF,该方式可以进行热部署。

Idea部署ssm web项目时出现404问题