IDEA使用Tomcat运行Web项目及其常见报错

IDEA使用Tomcat运行Web项目及其常见报错

一、Project Structure

目的:让IDEA知道这是个Web项目

  1. Modules

    目的:加载Web相关的配置和资源

    右键目标模块 - Add - Web

    Web配置窗口

    1. 确认web.xml路径是否正确,不正确需要手动修改

      web.xml即Deployment Descripters下的Path

    2. 确认Web资源目录是否正确,不正确需要手动修改

      web资源目录WEB-INF上级路径(JSP等放置的位置)

      应用程序一般默认为web文件夹,但是我的项目为webapp文件夹,改为正确的webapp

  2. Artifacts

    即编译后的Java类,Web资源等的整合,用以测试、部署等工作

    白话一点,就是说某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式

    某个module有了 Artifacts 就可以部署到应用服务器中了

    - Add - Web Application: Exploded - From Modules... - 选择我们的项目or模块

    区分:
    (1)jar:Java ARchive,通常聚合Java类文件、相关数据和资源(文本、图片等)到一个文件,以便分发Java平台应用软件或库;
    (2)war:Web application ARchive,一种JAR文件,其中包含用来分发的JSP、Java Servlet、Java类、XML文件、标签库、静态网页(HTML和相关文件),以及构成Web应用程序的其他资源;
    (3)war exploded:展开,不压缩。直接把文件夹、jsp页面 、classes等移到Tomcat 部署文件夹里面
    			因此这种方式支持热部署,建议在开发的时候使用这种模式,便于修改了文件的效果立刻显现出来
    			热部署:对于Java应用程序来说,热部署就是在运行时更新Java类文件。
    

二、Tomcat配置

  1. 点击IDEA右上方执行的Add Configuration...

  2. 弹出的窗口中点击+,出现的选项中往下滑,选择Tomcat Server - Local

    这步添加Tomcat配置

  3. 点击Deployement页签,点击+,选择Artifact...

    这里IDEA会将刚才的项目artifact放入窗口中

    但也有可能存在其他的artifact,选择我们需要的

  4. 修改Application context,可以只保留一个/

    IDEA会自动为我们生成项目根路径

    如果其他配置没问题结果访问404很可能是因为这个没改

  5. 点击Server页签,检查URL处是否与步骤4中设置的同步

    IDEA会自动同步

三、Tomcat运行

给我点那个绿色的Run!!!!

当你点击运行Tomcat时,IDEA在做什么

  1. 编译

    IDEA在保存后不会做编译,不像Eclipse的保存即编译,

    因此在运行server前会做一次编译,

    编译后class文件存放在指定的项目编译输出目录下;

  2. 根据artifact中的设定对目录结构进行创建

  3. 拷贝web资源的根目录下的所有文件到artifact的目录下(见1.2.3);

  4. 拷贝编译输出目录下的classes目录到artifact下的WEB-INF下(见1.2.2);

  5. 拷贝lib目录下所需的jar包到artifact下的WEB_INF下;

  6. 运行server,运行成功后,如有需要,会自动打开浏览器访问指定url。

四、一些报错及解决

4.1、org.springframework…xxx不存在

4.1.1、情况一:pom.xml中的maven的dependency没加载好(红色version)

  1. 方法一:头铁再试一次

    右击项目 - Maven - Reimport

    IDEA将通过网络自动下载相关依赖,并存放在Maven的本地仓库中

  2. 方法二:换个version罢

    如果还不行,可能的原因及解决:
    原因一:你的maven配置了从aliyun镜像下载,而aliyun仓库中恰好没有对应version
    原因二:版本号version暂时用不了(我也不知道是什么缘故),换个版本号就好了
    解决:访问https://mvnrepository.com/(需要梯子)
    搜索需要的artifact,复制其他versiondependency并粘贴到pom.xml

  3. 方法三:你是不是装过不止一个maven

    检查File - Settings - Build,Execution,Deployment - Maven

    Maven home directory选择你本次项目要用的maven

    User settings filesettings.xml里可能配置了从aliyun下载(自己权衡要不要改)

  4. 方法四:手动下载jar包

    如果上面的你都尝试过了,还是不行(哦,可怜的人儿):
    你需要baidu.com搜索对应版本的jar包并下载
    jar包放到maven本地repository文件夹中的对应位置(这个对应位置要点进一个个小文件夹
    注意删除最里面那个文件夹里以 .lastUpdated为后缀的文件(下载失败的),然后粘贴
    刷新一下maven依赖

将Maven的刷新设置为自动,配置方法为:
(1)打开File-Settings-Maven
(2)勾选Import Maven projects automatically

4.2.2、情况二:pom文件相关的依赖明明都下载好了,但运行还是找不到XXX相关的包

**方法一:**删除target文件夹下所有文件,重新编译运行。

方法二:File - Settings - Build,Execution,Deployment - Maven - Runner

​ 勾选Delegate IDE build/run actions to Maven

​ 选择自己安装的JRE的路径


4.2、java.io.FileNotFoundException: class path resource [spring/] cannot be resolve

**描述:**此异常是说找不到spring的配置文件。

**原因:**为了防止mybatismapper文件被过滤掉,在pom.xmlbuild节点下加入了如下代码

<!--如果不加如下配置maven打包时不会将mapper文件打包进去-->
<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.properties</include>
            <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
    </resource>
</resources>

解决:maven默认扫描src/main/java中的文件但并不理会src/main/resources中的xml文件,

​ 因此,添加resource节点,使其扫描src/main/resources中的xml文件

<!--如果不加如下配置maven打包时不会将mapper文件打包进去-->
<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.properties</include>
            <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
    </resource>
<!--修改后的文件-->
<!--如果不加此节点,resources文件中的spring配置文件将会找不到-->
    <resource>
        <directory>src/main/resources</directory>
        <includes>
            <include>**/*.properties</include>
            <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
    </resource>
</resources>

4.3、maven依赖的多个版本依赖冲突

描述:当出现下面问题异常的时候,如果clean jar包之后还是无法成功启动项目,可以考虑是这个问题

1、NoDefClassException
2、ClassNotFoundException
3、NoSuchMethodError
4、NoSuchFieldError

查看:在界面右侧可找到Maven,点开,小图标里找到Show Dependencies

​ 点击后即可查看当前maven模块的依赖结构图红色的线即为依赖冲突

解决:

  1. File - Settings - Plugins - 搜索 maven helper - install
  2. 打开pom.xml,在编辑器下方 控制台上方,点击text旁边的Dependency Analyzer
  3. 左侧为冲突的jar包,挨个点开,把右侧红色的挨个右击exclude

五、参考博客

  1. IDEA使用Tomcat运行web项目教程:http://t.csdn.cn/44qjF
  2. idea运行项目 程序包org.springframework…xxx不存在的解决办法:http://t.csdn.cn/kzfyg
  3. 解决idea打开的项目中maven依赖下载失败问题:http://t.csdn.cn/6nNLs
  4. 如何将下载到本地的JAR包手动添加到Maven仓库:http://t.csdn.cn/82XIn
  5. war和war exploded的区别:http://t.csdn.cn/quYCO
  6. IDEA项目运行项目报404错误——org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。:http://t.csdn.cn/CY4WI
  7. IDEA部署项目到tomcat运行成功但是页面404的两种原因:http://t.csdn.cn/E3IBU
  8. java.io.FileNotFoundException: class path resource [spring/] cannot be resolve 《异常信息》:http://t.csdn.cn/5JDz8
  9. idea如何解决jar包冲突:http://t.csdn.cn/qyKTp
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
目录: 1.无法添加依赖 2.执行逆向生成操作的 Maven 命令 命令:mybatis-generator:generate。 报错执行不了 3. The import org.springframework.test cannot be resolved 无法导包 4. 运行Junit测试报错java.io.FileNotFoundException: class path resource [mybatis-config.xml] cannot be opened because it:java.io.FileNotFoundException: class path resource [mybatis-config.xml] cannot be opened because it 5.B站看视频如果声音嘈杂,不清楚,小。右键,点击清澈人声。有时候弹幕真牛逼。 6. 看视频第30集,日志系统操作,测试日志时候添加类报错:LoggerFactory cannot be resolved 7,查错需要看控制台的Caused by:后边的内容。 8,测试testTx()报错3,是因为,缺少1这句话。 9. Eclipse如何还原和重置窗口布局复位是reset 10.idea缺少maven导航条 11.idea运行项目,报错404,基本都是Tomcat配置那里两个路劲配置不一致导致的。 12.问题未解决!!!45集测试ssm环境整合,跑不起来 报错: 13 将项目转移到idea运行,并且进行一些配置修改,将以上12问题解决! 14.更改配置文件,或者有其他更改,最好要在build那里rebuild一下,要不然可能会出一些莫名其妙的错误,这是在用renrenfast框架时候,增加学生,教师等模块,界面一致装,不能正常显示,梦圆教我的。Rebuild后,再重启,即可解决问题。 15.idea加载一个新项目,第一需要调出右侧maven导航条,更新下maven,第二需要在artifact那边的lib里增加maven依赖。这样才能保证依赖和包齐全,项目才能正常运行。这是狂神教的 16.eclipse里边的project相当于idea里边的module。 17. idea 光标变粗如何恢复 18.出现问题:视频63集,无法做出和他一样的页面,HTML变红报错,网页没有按钮 19. 69集管理员登录测试,报400错误 20 问题19的启发,看视频遇到问题的话,那就载看一遍,很有可能是哪里敲错了,导致了问题的出现,好好再检查一遍流程,很多问题基本能够解决。 21 IDEa中Ctrl+f 是在当前这个页面搜索任何想找的代码 22. 70集管理员登录,重定向,报错404 23.最开始这边的弹框弹不出来 24.视频82集,页面显示主体数据,运行项目后,等录出错,出现空白页,控制台也有报错 25.点击用户维护,不想老师那样,出现tom相关信息,button按钮也有问题 26.第87集分页导航条查询有问题 27,95集新增功能,点击页面的新增报404错误 28.视频132,单条删除,无法删除,查看前端代码有报错 29.报500错误,说utf-8啥的, 30.给管理员添角色,左侧未添加列表为空,然而,视频中的却不为空 31. 177集admin分配role,点击向右添加,保存后报错: 32.jsp文件明明定义了某个函数,但是页面显示不出来,查看console,报错说没有这个函数,这是因为浏览器有缓存的原因,按ctrl+f5强制刷新,然以后在重启服务器即可解决问题。 33.感觉debug自己还不会,这是一项必备的技能,后边有必要在B站上搜索下debug教程看看。 34.在pom中加入依赖,在web.xml中增加配置后,需要在右侧maven导航条刷新,在上方artifact那边添加library,类里边如果导包不成功,那么重启idea就好了 35. p247运行项目直接报错: 36.老师讲要会看异常,后台框架里的异常,一般是后一个异常导致了前一个异常,所以看异常要最先看最后一个causeby:往往最后这个能解决99%问题。还有1%是xml文件写错了。 37. 252集测试2,我的roleOperator无法显示内容 38. 285集yml文件读取,测试test遇到找不到类异常 以下为解决办法: 39 288集spring整合mybaitis报错 40.项目看到290集,需要用到Redis,所以暂停项目学习,转入Redis学习。 41.Idea如何同时运行多个项目:点击edit configuration,然后如下图,报错即可,只要端口号不重复,就可以运行多个项目。 42. 重要错误parent的版本号对不上报错:Cann

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_像风一样

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值