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

如何自定义WebSphere错误页面,避免Spring应用异常暴露堆栈跟踪

解决WebSphere文件上传超限不显示自定义错误页面的问题

这个坑我之前踩过!核心原因是WebSphere在请求解析阶段就触发了文件大小超限错误——这时候你的web.xml错误配置还没来得及生效,容器还没完成请求处理的初始化,所以没法转发到自定义页面,才会抛出SRVEXXXXE提示并显示默认页面。下面是一步步的解决办法:

1. 配置WebSphere容器级的自定义错误页面

因为这个错误属于容器层面的早期错误,必须先在WebSphere控制台里配置:

  • 登录WebSphere管理控制台,找到你的应用服务器实例
  • 导航到:服务器 > 服务器类型 > WebSphere应用服务器 > [你的服务器名称] > 错误页面
  • 点击「新建」,添加错误规则:
    • 如果你想精准匹配文件超限异常,选择「异常类型」,输入org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException(如果用的是Commons FileUpload);或者用com.ibm.ws.webcontainer.webapp.WebAppErrorReport覆盖更广泛的容器错误
    • 也可以直接用HTTP错误码413(请求实体过大),然后指定你的自定义错误页面路径,比如/error/file-too-large.jsp
  • 保存配置,记得后续要重启服务器

2. 强化web.xml的错误页面配置

在应用的web.xml里补充针对该异常和错误码的配置,覆盖请求处理阶段的情况:

<!-- 针对文件超限异常 -->
<error-page>
    <exception-type>org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException</exception-type>
    <location>/error/file-too-large.jsp</location>
</error-page>
<!-- 针对HTTP 413错误码 -->
<error-page>
    <error-code>413</error-code>
    <location>/error/file-too-large.jsp</location>
</error-page>

如果你的应用用了Spring MVC,还要在全局异常处理器里捕获Spring封装的MaxUploadSizeExceededException:

@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(MaxUploadSizeExceededException.class)
    public String handleFileTooLarge(MaxUploadSizeExceededException e, Model model) {
        model.addAttribute("errorMsg", "文件大小超过限制,最大允许10MB");
        return "error/file-too-large";
    }
}

3. 关闭WebSphere的堆栈跟踪暴露

为了避免默认页面显示堆栈信息,还要做两个配置:

  • 回到控制台的「Web容器」设置:服务器 > 服务器类型 > WebSphere应用服务器 > [你的服务器名称] > Web容器
  • 点击「自定义属性」,添加属性:
    • 名称:com.ibm.ws.webcontainer.disableErrorPageCustomization
    • 值:false(确保容器允许使用自定义错误页面)
  • 再回到「错误页面」设置,取消勾选「显示错误页面上的堆栈跟踪」选项

4. 验证配置

上传一个11MB的测试文件,确认自定义错误页面正常显示;如果还是有问题,检查自定义页面的路径是否正确、应用是否正确部署,最后重启WebSphere确保所有配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:57:46