NetBeans中Tomcat运行JSP报404请求资源不可用的解决方法
JSP访问返回404问题排查记录
问题现象
在NetBeans中使用Tomcat运行.jsp文件时触发404报错:
问题特征:
- 仅访问
.jsp文件时触发错误,访问.html文件无任何异常 - 多环境复现:NetBeans 13、NetBeans 8.2两个版本,分别搭配Tomcat、GlassFish服务器运行,均出现相同错误
- 服务器启动无明显报错,启动流程正常完成
项目结构如下:
相关配置与文件
测试JSP文件内容
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>Hello World!</h1> </body> </html>
Context配置文件内容
<?xml version="1.0" encoding="UTF-8"?> <Context path="/WebApplication1"/>
Tomcat启动日志
Using CATALINA_BASE: "G:\Program Files\apache-tomcat-8.5.81-windows-x64\apache-tomcat-8.5.81" Using CATALINA_HOME: "G:\Program Files\apache-tomcat-8.5.81-windows-x64\apache-tomcat-8.5.81" Using CATALINA_TMPDIR: "G:\Program Files\apache-tomcat-8.5.81-windows-x64\apache-tomcat-8.5.81\temp" Using JRE_HOME: "G:\Program Files\Java\jdk1.8.0_331" Using CLASSPATH: "G:\Program Files\apache-tomcat-8.5.81-windows-x64\apache-tomcat-8.5.81\bin\bootstrap.jar;G:\Program Files\apache-tomcat-8.5.81-windows-x64\apache-tomcat-8.5.81\bin\tomcat-juli.jar" Using CATALINA_OPTS: "" 14-Jun-2022 22:45:59.386 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本名称: Apache Tomcat/8.5.81 14-Jun-2022 22:45:59.401 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jun 8 2022 21:30:15 UTC 14-Jun-2022 22:45:59.401 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 8.5.81.0 14-Jun-2022 22:45:59.401 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 10 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统版本: 10.0 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 系统架构: amd64 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: G:\Program Files\Java\jdk1.8.0_331\jre 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_331-b09 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM厂商: Oracle Corporation 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: G:\Program Files\apache-tomcat-8.5.81-windows-x64\apache-tomcat-8.5.81 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: G:\Program Files\apache-tomcat-8.5.81-windows-x64\apache-tomcat-8.5.81 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=G:\Program Files\apache-tomcat-8.5.81-windows-x64\apache-tomcat-8.5.81\conf\logging.properties 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dhttp.nonProxyHosts=localhost|127.0.0.1|SALOMON-PC 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs= 14-Jun-2022 22:45:59.402 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=G:\Program Files\apache-tomcat-8.5.81-windows-x64\apache-tomcat-8.5.81 14-Jun-2022 22:45:59.403 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=G:\Program Files\apache-tomcat-8.5.81-windows-x64\apache-tomcat-8.5.81 14-Jun-2022 22:45:59.403 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=G:\Program Files\apache-tomcat-8.5.81-windows-x64\apache-tomcat-8.5.81\temp 14-Jun-2022 22:45:59.403 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 已加载Apache Tomcat原生APR库[1.2.33],APR版本为[1.7.0] 14-Jun-2022 22:45:59.403 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR能力: IPv6 [true], 文件发送 [true], 接收过滤器 [false], 随机数 [true], UDS [{4}] 14-Jun-2022 22:45:59.403 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置: useAprConnector [false], useOpenSSL [true] 14-Jun-2022 22:45:59.491 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL初始化成功 [OpenSSL 1.1.1o 3 May 2022] 14-Jun-2022 22:45:59.993 信息 [main] org.apache.coyote.AbstractProtocol.init 正在初始化协议处理器["http-nio-8080"] 14-Jun-2022 22:46:00.016 信息 [main] org.apache.catalina.startup.Catalina.load 初始化处理完成,耗时959 ms 14-Jun-2022 22:46:00.093 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina] 14-Jun-2022 22:46:00.093 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动Servlet引擎: [Apache Tomcat/8.5.81] (后续异常栈与部署日志保留原始技术字段不变) 14-Jun-2022 22:46:01.088 信息 [main] org.apache.catalina.startup.Catalina.start 服务器启动完成,耗时1071 ms
验证有效的解决方案
将.jsp首页文件名修改为全小写的index.jsp即可解决该问题。
根因说明:Tomcat、GlassFish等Java Web服务器默认的欢迎页匹配规则对文件名大小写敏感,默认仅识别全小写的
index系列文件作为首页,使用大写、驼峰等其他命名格式的首页文件不会被自动匹配,直接访问项目根路径时就会返回404错误。
内容的提问来源于stack exchange,提问作者Samir
相关产品推荐
相关产品推荐

