IDEA使用Tomcat运行web项目教程分享

 更新时间:2024年10月06日 15:11:32   作者:笔墨桑  
在非Spring Boot项目中运行Nacos示例,需要手动配置Tomcat容器,本文介绍了如何在IDEA中配置Tomcat,并详细解决了配置过程中可能遇到的异常情况,步骤包括修改IDEA项目结构、添加Web模块、配置Artifacts和Tomcat Server

写作背景

NacosGitHub中下载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-exampleartifact放入窗口中。

但是也有可能有好多个其他的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中的项目根路径

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java DefaultListableBeanFactory接口超详细介绍

    Java DefaultListableBeanFactory接口超详细介绍

    这篇文章主要介绍了Java DefaultListableBeanFactory接口,DefaultListableBeanFactory是整个bean加载的核心部分,是Spring注册机加载bean的默认实现
    2022-11-11
  • Java递归调用如何实现数字的逆序输出方式

    Java递归调用如何实现数字的逆序输出方式

    这篇文章主要介绍了Java递归调用如何实现数字的逆序输出方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Spring的InitializingBean接口解析

    Spring的InitializingBean接口解析

    这篇文章主要介绍了Spring的InitializingBean接口解析,InitializingBean是spring为bean的初始化提供了一种新的方式,里面只有一个方法afterPropertiesSet,作用就是实现这个接口或者实现了继承InitializingBean的方法的bean都要执行这个方法,需要的朋友可以参考下
    2024-02-02
  • JAVA利用顺序表实现“杨辉三角”的思路及代码示例

    JAVA利用顺序表实现“杨辉三角”的思路及代码示例

    杨辉三角形是中国古代数学的杰出研究成果之一,是我国北宋数学家贾宪于1050年首先发现并使用的,这篇文章主要介绍了JAVA利用顺序表实现杨辉三角的思路及代码示例,需要的朋友可以参考下
    2025-01-01
  • SpringBoot 嵌入式web容器的启动原理详解

    SpringBoot 嵌入式web容器的启动原理详解

    这篇文章主要介绍了SpringBoot 嵌入式web容器的启动原理详解,具有很好的参考价值,希望对大家有所帮助。
    2021-11-11
  • Java几个实例带你进阶升华下篇

    Java几个实例带你进阶升华下篇

    与其明天开始,不如现在行动,本文为你带来几个Java书写的实际案例,对巩固编程的基础能力很有帮助,快来一起往下看看吧
    2022-03-03
  • Mybatis中注入执行sql查询、更新、新增及建表语句案例代码

    Mybatis中注入执行sql查询、更新、新增及建表语句案例代码

    这篇文章主要介绍了Mybatis中注入执行sql查询、更新、新增以及建表语句,主要说明一个另类的操作,注入sql,并使用mybatis执行,结合案例代码详解讲解,需要的朋友可以参考下
    2023-02-02
  • JavaWeb核心技术中Session与Cookie浅析

    JavaWeb核心技术中Session与Cookie浅析

    session的工作原理和cookie非常类似,在cookie中存放一个sessionID,真实的数据存放在服务器端,客户端每次发送请求的时候带上sessionID,服务端根据sessionID进行数据的响应
    2023-02-02
  • 一次线上websocket返回400问题排查的实战记录

    一次线上websocket返回400问题排查的实战记录

    最近项目中有端对端通信场景,实时性要求较高,考虑后选用了websocket 这一通信协议,下面这篇文章主要给大家介绍了一次线上websocket返回400问题排查的实战记录,需要的朋友可以参考下
    2022-04-04
  • Java中Random类常用方法及注意事项总结大全

    Java中Random类常用方法及注意事项总结大全

    Java Random类是Java中生成随机数的一个重要工具类,它提供了丰富的方法来生成不同类型的随机数,这篇文章主要介绍了Java中Random类常用方法及注意事项的相关资料,需要的朋友可以参考下
    2025-07-07

最新评论