You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Eclipse/Tomcat下HTTP 404错误求助:项目路径访问失败

解决你的Tomcat部署与404问题

嘿,刚看了你的问题,咱们一步步来拆解解决哈——你现在遇到的是项目路径404,还有个Tomcat的Context属性警告,这俩大概率是相关的,先从警告入手,再排查404。

一、先搞定[SetContextPropertiesRule]警告

这个警告其实是Eclipse自动生成的配置坑了Tomcat——Tomcat根本不认识source这个Context属性。解决起来很简单:

  • 找到Tomcat部署目录下的项目配置文件,一般在Tomcat/conf/Catalina/localhost里,文件名应该是myproject.xml
  • 打开后删掉那行带source="org.eclipse.jst.jee.server:myproject"的配置,保存后重启Tomcat,这个警告就会消失了。

二、排查localhost:8080/myproject/class的404错误

先确认几个核心点:

  1. 项目是不是真的部署成功了?
    去Tomcat的webapps目录看看有没有myproject文件夹,如果没有,说明项目压根没部署上去。Eclipse有时候会把项目部署到工作空间的.metadata目录里,你可以在Eclipse的Server视图右键Tomcat→PropertiesLocation,查看实际部署路径,确认myproject是否在对应的webapps目录下。
  2. 你访问的/class资源到底是什么?
    • 如果是Servlet:检查web.xml里的Servlet映射是不是配错了——有没有写<url-pattern>/class</url-pattern>?Servlet类的包路径和类名有没有写错?
    • 如果是JSP页面:确认myproject根目录下有没有class.jsp?要是放在WEB-INF下的话,直接访问是会404的,因为WEB-INF里的资源不能直接通过URL访问。
    • 如果是静态资源(比如HTML):同样要确认文件位置在myproject的根目录或者允许访问的子目录里。
  3. 连接池配置会不会搞砸了部署?
    你改了web.xmlcontext.xml做连接池,要是配置错了,可能导致项目部署失败:
    • 检查context.xml里的<Resource>标签:namedriverClassNameurlusername这些属性有没有拼写错误?比如驱动类名是不是com.mysql.cj.jdbc.Driver(MySQL8+),而不是旧的com.mysql.jdbc.Driver
    • 检查web.xml里的<resource-ref>res-ref-name必须和context.xml里的Resourcename完全一致,比如context.xml里是name="jdbc/MyDB",那web.xml里的<res-ref-name>也得是jdbc/MyDB
    • 去Tomcat的logs/catalina.out或者localhost.log里看看启动日志,要是连接池配置错了,日志里肯定会有异常信息,这能帮你快速定位问题。

三、几个实用的排查小技巧

  • 重启Tomcat后,先看启动日志里有没有类似Deploying web application directory [/xxx/tomcat/webapps/myproject]的提示,有这个才说明项目部署成功了。
  • 先试试访问localhost:8080/myproject(不带后面的/class),如果这个也404,那重点排查项目部署的问题;如果这个能打开,再聚焦到/class的路径配置上。

内容的提问来源于stack exchange,提问作者user9338258

火山引擎 最新活动