本文介绍: 四、一些报错解决4.1、org.springframework..xxx存在4.1.1、情况一:pom.xml中的mavendependency加载好(红色version)4.2.2、情况二:pom文件相关依赖明明都下载好了,但运行还是找不到XXX相关的包4.2、java.io.FileNotFoundException: class path resource [spring/] cannot be resolve4.3、maven依赖多个版本依赖冲突

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

一、Project Structure

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

  1. Modules

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

    右键目标模块AddWeb

    Web配置窗口

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

      web.xml即Deployment Descripters下的Path

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

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

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

  2. Artifacts

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

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

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

    AddWeb Application: ExplodedFrom 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 ServerLocal

    这步添加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.springframeworkxxx存在

4.1.1、情况一:pom.xml中的mavendependency没加载好(红色version
  1. 方法一:头铁再试一次

    右击项目MavenReimport

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

  2. 方法二:换个version

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

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

    检查FileSettingsBuild,Execution,DeploymentMaven

    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文件夹下所有文件,重新编译运行。

方法二:FileSettingsBuild,Execution,DeploymentMavenRunner

勾选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文件打包进去--&gt;
<resources&gt;
    <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. FileSettingsPlugins搜索 maven helperinstall
  2. 打开pom.xml,在编辑器下方 控制台上方,点击text旁边的Dependency Analyzer
  3. 左侧为冲突jar包,挨个点开,把右侧红色的挨个右击exclude

五、参考博客

  1. IDEA使用Tomcat运行web项目教程http://t.csdn.cn/44qjF
  2. idea运行项目 程序包org.springframeworkxxx存在解决办法http://t.csdn.cn/kzfyg
  3. 解决idea打开的项目中maven依赖下载失败问题:http://t.csdn.cn/6nNLs
  4. 如何下载到本地的JAR包手动添加到Maven仓库http://t.csdn.cn/82XIn
  5. warwar 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

原文地址:https://blog.csdn.net/qq_51366188/article/details/127519671

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_37094.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注