写作背景
从Nacos
的GitHub
中下载demo,准备运行nacos-spring-config-example
,由于非spring boot
项目,不内置Tomcat
容器,所以需要自己配一下。而已经很久没有手动配置过Tomcat
了,准确的步骤记不清,而且在配置过程中,出现了很多以前没遇到过的异常情景,网上的博客对这些异常处理也不准确,而且非常少,于是自己记录一下完整的配置过程,以及异常情景的解决办法,帮助那些有同样问题的小伙伴
准备
- 需要下载
Tomcat
,并解压到自定义路径 - 一个Web项目,以
nacos-spring-config-example
为例,结构大致如下
说明:笔者使用的IDEA版本为2021.1,不同IDEA之间的窗口或按钮可能有区别,请根据实际情况进行修改
步骤
1. 项目结构配置
1.1 修改Modules信息
该demo导入IDEA
之后,IDEA
是不知道这个项目为Web
项目的,需要我们手动处理
1.1.1 添加为Web
项目
在菜单栏中点击File
->Project Structure...
,快捷键为Ctrl
+ Alt
+ Shift
+ S
或右键项目或模块,点击Open Module Settings
,快捷键为F4
在弹出的窗口中点击左侧Module
页签,在中间的项目或模块列表中右键我们的目标模块,依次选择Add
-> Web
添加完毕后该模块下会出现一个Web
文件夹,表示该项目已是Web
项目
1.1.2 修改Web
配置
添加Web
之后窗口右侧会变为Web
配置窗口,详情如下图
这里我们需要确认web.xml
的路径以及资源目录
是否正确
在本案例中资源目录
不正确,需要手动修改
可以看到应用程序一般默认为web
文件夹,但是我的项目为webapp
文件夹,改为正确的webapp
到这里Module
就配置完毕了
1.2 修改Artifacts
配置
点击左侧Artifacts
页签
1.2.1 添加Artifacts
在中间的窗口上方点击+
,或右键中间窗口,点击Add
之后依次选择Web Application: Exploded
-> From Modules...
在弹出的窗口中选择我们的项目或模块
1.2.2 修改
点击OK,至此Artifacts
配置完毕
2. Tomcat
配置
2.1 添加Tomcat
配置
点击IDEA右上方执行的Add Configuration...
弹出的窗口中点击+
,出现的选项中往下滑,选择Tomcat Server
->Local
2.2 添加Artifact
点击右侧Deployement
选项卡
点击右侧+
,选择Artifact...
这里IDEA直接将刚才创建的nacos-spring-config-example
的artifact
放入窗口中。但是也有可能有好多个其他的artifact
,这时选择我们想要的就可以了
IDEA会自动为我们生成项目根路径,如上图所示。我们可以按照我们的需求对该路径进行修改,如我这里不想要根路径,那么就只保留一个/
2.3 检查修改项目URL
点击Server
页签,查看URL
处是否与步骤2.2
中设置的同步
IDEA默认会自动同步,如,步骤2.2
改之前这里为
步骤2.2
改之后就变为
如果不一致,则需修改为一致
到此Tomcat
就配置完毕了
3. 运行Tomcat
配置之后,点击IDEA
中的Run
或者Debug
,等待项目运行成功
可能遇到的问题
Tomcat
启动成功,但是项目却报404
异常
原因可能是Tomcat
配置的Deployement
中的应用根路径与Server
中的URL
不匹配所致。详见步骤2.2
以及2.3
。有可能为手动更改Server
中的URL
,但是IDEA不会去修改Deployement
中的项目根路径