ideal HTTP Status 404 – Not Found

本文记录了一次从MyEclipse切换到IntelliJ IDEA的过程,详细介绍了如何成功导入项目并解决访问jsp页面时出现的HTTP 404错误。通过调整Tomcat配置文件server.xml中的appBase和docBase设置,最终实现了项目的顺利运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天把myeclipse的项目导入到ideal里面,一切都弄完了,启动也成功了,如下:

[2019-06-01 03:15:30,206] Artifact Lottery:war exploded: Artifact is deployed successfully
[2019-06-01 03:15:30,206] Artifact Lottery:war exploded: Deploy took 1,033 milliseconds

看到成功启动,心情自然开心了。然而访问jsp页面却报HTTP Status 404 – Not Found,然后网上找下度娘,关于这方面的文章不超过3篇,实在伤心!最伤心的是,按照他们说的依然没有解决。

最后只能自己苦思冥想,最后自己弄出来了!需要修改tomcat-8.0.30\conf\server.xml中的appBase及docBase指向ideal的输出目录文件,如下

<Service name="Catalina">
    <Connector connectionTimeout="20000" port="80" protocol="org.apache.coyote.http11.Http11Protocol" redirectPort="8443"/>
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" maxHttpHeaderSize="8192"/>
    <Engine defaultHost="localhost" name="Catalina">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>

      <Host appBase="F:\javaweb\Lottery\out\artifacts\Lottery_war_exploded\" autoDeploy="true" name="localhost" unpackWARs="true">
        <Context docBase="F:/javaweb\Lottery/out/artifacts/Lottery_war_exploded/" path="" reloadable="true"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt"/>
      </Host>
    </Engine>
  </Service>

特此记录一下!欢迎指正,本人新手,从D转向J。

### Tomcat 中出现 404 错误的原因及解决方案 #### 原因分析 Tomcat 报 404 的问题通常是由以下几个方面引起的: 1. **环境变量未正确配置** 如果 Tomcat 的环境变量没有正确设置,可能导致无法加载项目资源或找不到路径。这通常是由于 `JAVA_HOME` 或 `CATALINA_HOME` 环境变量缺失或指向错误位置所致[^1]。 2. **IIS 访问权限不足** 当使用 IIS 转发请求至 Tomcat 时,可能因为 IIS 权限配置不当而导致 404 错误。这种情况下需要检查 IIS 是否具有足够的权限来访问 Tomcat 托管的应用程序目录及其子文件夹。 3. **残留的配置文件** 删除某个项目后,如果没有清理掉该项目在 `conf\Catalina\localhost` 下的相关配置文件,则可能会导致服务器尝试加载不存在的资源而触发 404 错误。此时应手动移除这些多余的配置文件以及任何备份文件(如 `.bak` 文件),随后重启 Tomcat 即可解决问题[^2]。 4. **Servlet API 版本冲突** 在较新的 Tomcat 版本中,默认支持的是 Jakarta EE 标准下的 Servlet 接口 (`jakarta.servlet-api`),而非传统的 Java EE 标准 (`javax.servlet-api`)。如果项目的 Maven 依赖仍然引用旧版接口库,在部署过程中会引发类加载异常进而表现为页面不可达 (即 404)。因此建议更新 POM.xml 文件中的相关声明如下所示[^3]: ```xml <dependency> <groupId>com.guicedee.services</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>1.2.2.1-jre17</version> </dependency> ``` #### 解决方案总结 针对以上提到的各种情况采取相应的措施即可有效规避此类问题的发生: - 检查并修正所有必要的系统级环境参数; - 审核 Web 应用所在磁盘分区上的安全策略以确保其符合预期需求; - 清理不再使用的虚拟主机定义条目以防干扰正常业务流程执行; - 对齐所选用框架组件间相互兼容性的要求从而保障整体架构稳定性。 ```bash # 示例命令用于验证 JAVA_HOME 设置是否正确 echo %JAVA_HOME% ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值