You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebSphere项目持续报Error 404: SRVE0190E错误,求排查解决

解决WebSphere中Error 404: SRVE0190E: File not found问题

看起来你在WebSphere上部署Servlet项目时遇到了头疼的404问题,我结合你的代码和配置,给你梳理几个可能的排查方向,应该能帮你定位问题:

1. 排查Servlet注解与web.xml的冲突问题

你代码里同时用了@WebServlet("/RegisterServlet")注解,又在web.xml里配置了相同的Servlet映射,但你的web.xml用的是Servlet 2.3的DTD(web-app_2_3.dtd)——这个版本的Servlet规范根本不支持注解!也就是说,WebSphere会完全忽略你的@WebServlet注解,只认web.xml里的配置。

不过这里有个小坑:如果web.xml的版本和注解不兼容,有时候会导致映射处理混乱。建议你二选一:

  • 要么保留web.xml的Servlet 2.3配置,直接删掉代码里的@WebServlet注解;
  • 要么升级web.xml到Servlet 3.0+版本(WebSphere 8.0及以上支持),删掉web.xml里的servlet和servlet-mapping配置,只靠注解来映射。

升级后的web.xml模板可以参考这个:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <display-name>Archetype Created Web Application</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

2. 确认访问URL是否包含项目上下文路径

这是最容易忽略的点!WebSphere部署项目时会给每个应用分配一个上下文路径(默认可能是项目名称),你访问Servlet时必须带上这个路径。

举个例子:如果你的项目部署后的上下文路径是/ussd-web,那正确的访问URL应该是:
http://localhost:9080/ussd-web/RegisterServlet
如果你直接访问http://localhost:9080/RegisterServlet,肯定会报404。

你可以登录WebSphere控制台,找到你的项目,查看部署详情里的上下文路径,确认一下。

3. 检查Servlet类的包路径是否正确

你的web.xml里配置的<servlet-class>是com.web.servlet.RegisterServlet,一定要确保编译后的RegisterServlet.class文件确实在WEB-INF/classes/com/web/servlet/目录下。如果包名写错了,或者类文件放错了位置,WebSphere找不到这个Servlet,自然会返回404。

4. 查看WebSphere的后台日志找线索

前台的404提示太笼统了,WebSphere的后台日志能给你更具体的信息。你可以去WebSphere的安装目录下找profiles/<你的Profile名称>/logs/<服务器名称>/目录,查看SystemOut.log或者SystemErr.log,里面可能会有类似“Servlet类找不到”“映射配置错误”的详细异常,这能帮你快速定位问题。

5. 确认项目打包结构是否符合规范

标准的Web应用结构应该是这样的:

你的项目名/
├── WEB-INF/
│   ├── classes/          # 存放编译后的Java类文件
│   │   └── com/
│   │       └── web/
│   │           └── servlet/
│   │               └── RegisterServlet.class
│   ├── lib/              # 依赖的jar包(比如JDBC驱动)
│   └── web.xml           # 配置文件
└── index.jsp             # 欢迎页

如果你的classes目录路径不对,或者web.xml不在WEB-INF下,都会导致部署异常,进而出现404。

你可以先按上面的步骤逐一排查,最可能的问题就是访问路径没带上下文,或者注解与web.xml版本冲突。

内容的提问来源于stack exchange,提问作者Life with George

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:16:20