在IDEA里想修改项目名或者模块名,有时是件很麻烦的事。因为要是关联的配置项没对应地修改过来,项目就没法再运行了。
在学习Servlet相关知识时,我将一个Web模块重命名(Rename module and directory)。为了模块更彻底地重建,我采用如下步骤:
-
进入Project Structure,将对应的Facets-Web-XXX与Artifacts-XXX移除
-
进入文件资源管理器,在模块目录中将web目录备份到桌面然后移除,将out-artifact-XXX移除
-
同样在文件资源管理器,将CATALINA_BASE(%LocalAppData%\JetBrains\IntelliJIdea2020.2\tomcat\XXX),即Tomcat项目部署配置文件删除
-
Add Framework Support - Web Application,将备份的web目录中的相关文件复制导入
-
进入Project Structure,添加相关Libraries依赖,检查Arctifacts无误
-
进入Configurations,修改Deployment - Deploy at server startup与虚拟目录(Application context),并注意在资源与java代码中检查修改
-
模块重建完毕,重启服务器
此后,在login.html登录跳转时,返回404。我发现是跳转后的路径中,虚拟目录仍为原来的虚拟目录,没有更新过来导致的。摸索很久才反应过来是谷歌浏览器缓存的问题,或许是他察觉到我的登录行为并无变化,所以直接访问缓存中的Servlet路径,所以其中的虚拟目录就是原来的,导致错误。
解决方案:谷歌浏览器 - 设置 - 隐私设置与安全性 - 清除浏览数据