Idea web项目启动有资源但仍然显示404

这篇具有很好参考价值的文章主要介绍了Idea web项目启动有资源但仍然显示404。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

向朋友要了项目,尝试在自己的电脑上运行时,自动打开的 "localhost/login.jsp" 显示404错误。

背景

项目是在朋友那直接压缩发过来的,所以项目的配置文件也保留了,用自己的电脑需要修改部分配置。主要修改了Maven相关的路径以及本地tomcat的路径(版本不一致)。

问题

在修改完报错的配置之后,直接运行项目。自动打开的网址为 "localhost/login.jsp",但是显示404错误,即路径不对。

于是我初步检查了一下,把原来的端口80改成8080,用Maven清理之后重新打包了。重新运行仍然显示404错误。然后百度了一下,检查了target文件夹下的资源都齐全,运行时部署的确实是当前项目,但结果一样。毫无头绪,只能从日志里找线索。对日志里的CATALINA_BASE的路径"C:\Users\Admin\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\login_jsp_project"感到疑惑,于是继续搜索相关资料。

最后发现了,朋友是在他的电脑上可以用 "localhost/xxx" 直接访问项目资源,意味着他的项目是部署到tomcat的根目录下了。而我的项目部署在 "/project_war" 下,需要访问 "localhost/project_war/xxx" 才可以,所以接下来就是找出哪里设置就可以了。

解决方法

1.target目录下没有对应资源(不是我遇到的问题,也记录了)

在Idea上直接运行tomcat或者用Maven打包均会在项目根目录生成target文件夹,target文件夹下的project-1.0-SNATSHOT 和 project-1.0-SNATSHOT.war 就是在tomcat上运行的项目文件夹

idea启动web项目404,java,tomcat,maven,idea

文件名字在 pom.xml 里面定义

 idea启动web项目404,java,tomcat,maven,idea

 检查上面提到的项目文件夹里是否存在你要访问的资源,如果没有就从 webapps 里面复制过去就可以了。

 2.配置虚拟目录(我遇到的问题)

 根据日志信息中 CATALINA_BASE 路径,打开文件夹

Using CATALINA_BASE:   "C:\Users\Admin\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\login_jsp_project"

Using CATALINA_HOME:   "D:\Apache-tomcat-9.0.20"

( 其中日志信息中的 CATALINA_HOME 代表tomcat的安装目录,CATALINA_BASE代表工作目录或者项目目录)

idea启动web项目404,java,tomcat,maven,idea

 再打开 "conf\Catalina\localhost" 下的 xxx.xml ,能看到内容如下

<?xml version="1.0"?>
<Context docBase="D:\project\target\project-1.0-SNAPSHOT.war" path="/project_war"/>

context标签可以用于将本地系统中一个目录映射为可供web浏览器访问的虚拟目录。path属性指定web应用的虚拟路径。docBase属性用于指定该虚拟目录所在本地系统中的目录地址,可以用绝对地址或者相对于webapps目录的相对地址。

拿上面的内容举例,就是访问 "localhost/project_war/xxx" 会访问电脑上 "D:\project\target\project-1.0-SNAPSHOT.war" 这个目录下的xxx资源。

那找到了地方就可以检查对应的path是否正确。

这个path在 Idea 的 Run -> Edit Configurations 里面设置,点击Deployment

idea启动web项目404,java,tomcat,maven,idea

 下面的 Application context 就是我们在运行项目时,idea会在上述context标签里path属性里写的内容, 当值为空的时候,就会把项目设置为默认项目,即访问 "localhost/xxx" 即可,此时 context标签的 path=""

idea启动web项目404,java,tomcat,maven,idea

 再次运行项目,效果就和朋友打开的一样了。

额外补充

context代表虚拟主机host上运行的单个web应用,通过配置context元素可以灵活的发布web应用。context可以在很多地方配置,但是tomcat会以一定顺序的查找该元素,如果找到就使用该元素不会继续查下去。因此不同地方的context元素有优先级。查找顺序如下:

  1. 到<CATALINA_HOME>/conf/context.xml文件中查找context元素,该文件适用于所有web应用
  2. 到<CATALINA_HOME>/conf/[enginename]/[hostname]/context.xml.default中查找context元素。适用于所有web应用。
  3. 到<CATALINA_HOME>/conf/[enginename]/[hostname]/[contextpath].xml文件中查找,只适用于单个web应用。
  4. 到web应用的META-INF/context.xml文件中查找context元素,只适用于当前web应用。
  5. 到<CATALINA_HOME>/conf/server.xml文件中的host元素中查找context元素。可以在serverl.xml中配置所有的web应用的context元素,但是由于优先级最低,极有可能会被其他context元素覆盖。

参考及引用

IDEA中maven项目成功启动tomcat 但jsp页面显示404_idea启动tomcat404_好好学习yyy的博客-CSDN博客

Idea配置tomcat的一些细节 - 简书 (jianshu.com)

tomcat中Context的path和docBase属性_context docbase_千霜的博客-CSDN博客

tomcat基础_tomcat host context 优先级_千霜的博客-CSDN博客

侵权联系删

欢迎指出错误文章来源地址https://www.toymoban.com/news/detail-706669.html

到了这里,关于Idea web项目启动有资源但仍然显示404的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于讨论IDEA创建springboot项目后启动类不显示启动按钮的问题

    最近准备创建一个springboot项目来开发微信小程序后台,但是在创建项目后,发现启动类没有启动入口显示是CurrentFile, 文件样式也与之前显示的不一样,我理解应该是没识别为Java项目文件,而是一个普通文件 右键pom.xml文件,选择 Add as Maven Project 等待ing… 等待若干分钟后,等

    2024年02月12日
    浏览(50)
  • IDEA中启动Tomcat,访问首页地址报404错误。

    在观看本文章时,可以先观看文章末尾的3篇参考文章。 我参考这3篇文章,之后在IDEA中使用 Tomcat 启动 SpringBoot War项目,访问地址:http://localhost:8080/ 时,出现404错误。经过仔细排查,发现了问题所在。接下来,我一步步的详述问题出现的原因及解决方案。 Tomcat版本,推荐使

    2024年02月08日
    浏览(48)
  • Java IDEA Web 项目 1、创建

    环境: IEDA 版本:2023.2 JDK:1.8 Tomcat:apache-tomcat-9.0.58 maven:尚未研究 自行完成 IDEA、JDK、Tomcat等安装配置。 创建项目: IDEA - New Project  选择 Jakarta EE Template:选择 REST service 或 Web application  其他自行选择,填写选择后点击 Next 进入下个界面 Version:由于使用的Tomcat 9 无法使用

    2024年02月11日
    浏览(51)
  • Java web入门:在Idea上创建Java web项目

    在初学Java web时我们通常使用Tomcat作为Java web的服务器,而一个完整的Java项目需要jdk和集成开发环境。今天我们就以Idea为例介绍一下如何在Idea上创建Java web项目以及部署Tomcat 由于Tomcat运行依靠jdk,所以第一步就是确保jdk已经安装并配置,打开cmd命令行输入java回车,如果提示

    2024年02月04日
    浏览(63)
  • IDEA 中 Java 项目的main 方法没有启动按钮无法启动解决办法

    1.打开模块设置,检查jdk版本是否正确 Project: SDKs: 2.点击编辑配置 检查jdk以及类名是否正确 3.回到模块设置的Modules,注意这两个地方 src需要是蓝色的Sources,java文件夹不能是蓝色的Sources,否则都会导致main方法没有启动按钮。 (本人之前将java文件夹不小心弄成蓝色的Sou

    2024年02月03日
    浏览(48)
  • idea如何打开运行配置java web项目

    首先,点击File-open,选择要运行的java web项目,选择项目之后点击ok,如果弹出弹出框,可以选择当前窗口Thsi window或者New window! 2、检查JDK是否安装,选择File-Project Structure里面,配置你安装的JDK 3、配置Tomcat,如果没有则点击+添加TomcatServer里面的local,进行配置。 4、部署项目 ,点

    2024年02月15日
    浏览(45)
  • intelij idea 2023 创建java web项目

    1.点击New Project 2.创建项目名称为helloweb ,jdk版本这里使用8,更高版本也不影响工程创建 点击create 3.新建的工程是空的,点击File- Project Structure 4.点击Modules  5.点击加号,然后键盘输入web可以搜索到web模块,点击web 6.点击OK 7.可以看到新创建的web根目录 8.在web目录下创建一个

    2024年02月12日
    浏览(46)
  • 8.idea 使用 docker 构建 java web 项目

    docker 构建 java web 项目 和 docker 构建 spring boot 项目,除了 Dockerfile 不同,其他是都一样的。其他步骤参考:idea 使用 docker 构建 spring boot 项目,构建 Java Web 项目的 Dockerfile示例如下: 因为 java web 项目打的是 war 包,docker 需要依赖的基础镜像是 tomcat 附一个 Dockerfile 示例: 本文

    2024年02月07日
    浏览(50)
  • IDEA开发项目时一直出现http404错误的解决方法

    安装cv2库时出现错误的一般解决方法_cv2库安装失败 SQL> conn sys/root as sysdbaERROR:ORA-12560: TNS: 协议适配器错误的解决方案 虚拟机启动时出现“已启用侧通道缓解”的解决方法 Hypervisor launch failed; Processor does not provide the features necessary to run the hypervisor centos7配置ssh免密登陆完成,

    2024年02月11日
    浏览(52)
  • 在 IDEA 中创建 Java Web 项目的方式(详细步骤教程)

    以下是我的开发环境 JDK 1.8 Maven 3.6.3 Tomcat 9.0 IDEA 2019(2019 无所畏惧,即使现在已经 2023 年了哈哈哈) 下面的内容可能会因 IDEA 版本不同,而有些选项不同,但是大同小异。 1. 打开 IDEA 点击 Create New Project 2. 点击 Java Enterprise 点击左侧 Java Enterprise ,默认选项如下图所示。找到

    2024年02月08日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包