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

Spring Boot WAR包在Windows/iOS正常运行,Ubuntu下浏览器访问异常求助

嘿,我之前也碰到过类似的跨环境HTTP响应异常问题,结合你的场景,给你几个针对性的排查和解决思路,应该能帮你定位问题:

排查与解决方向

1. 先确认端口监听与防火墙状态

虽然你说应用启动正常,但Linux环境下端口可能被防火墙拦截,或者应用实际监听的端口和你预期的不一致:

  • 用netstat -tulpn | grep java或ss -tulpn | grep java查看应用实际监听的端口,确认是不是你配置的端口(比如默认的8080)
  • 检查Ubuntu防火墙状态:ufw status,如果目标端口没开放,执行ufw allow [你的端口号]开放端口
  • 也可以在本地用curl -v http://[服务器IP]:[端口]测试,看能不能建立连接并拿到明确的响应内容

2. 重点排查响应编码与Content-Type配置

Firefox显示乱码大概率是响应编码或Content-Type的问题,虽然本地正常,但Linux系统的默认编码可能和Windows不同:

  • 在Spring Boot配置文件(application.properties或application.yml)中强制指定响应编码:
    server.servlet.encoding.enabled=true
    server.servlet.encoding.force=true
    server.servlet.encoding.charset=UTF-8
    
  • 检查控制器返回响应时是否显式设置了Content-Type,比如:
    @GetMapping("/demo")
    public ResponseEntity<String> getDemo() {
        return ResponseEntity.ok()
                .contentType(MediaType.APPLICATION_JSON_UTF8)
                .body("测试响应内容");
    }
    
  • 查看Linux系统默认编码:执行locale命令,确认是否为UTF-8,如果不是,可以临时设置export LC_ALL=en_US.UTF-8后重启应用测试

3. 验证WAR包的构建完整性

虽然Maven构建提示正常,但跨环境可能存在依赖或构建产物不一致的情况:

  • 在Ubuntu上重新执行mvn clean package -DskipTests,注意观察构建过程有没有警告或隐藏错误
  • 对比本地和Ubuntu上构建的WAR包MD5值:md5sum [war包路径],如果不一致,建议删除Ubuntu本地Maven仓库(默认在~/.m2/repository)后重新拉取依赖构建

4. 开启DEBUG日志看请求处理细节

启动应用时开启Web层的DEBUG日志,能看到请求到达后的完整处理流程:

  • 在配置文件中添加:
    logging.level.org.springframework.web=DEBUG
    logging.level.org.apache.catalina=DEBUG
    
  • 重启应用后用浏览器访问,然后查看日志中关于请求接收、响应发送的部分,重点看响应头是否正确设置,有没有未捕获的异常信息

5. 检查内嵌Tomcat的连接器配置

Spring Boot WAR默认使用内嵌Tomcat,Linux环境下Tomcat的默认配置可能和Windows有差异:

  • 如果自定义了Tomcat配置类,确保连接器编码设置为UTF-8:
    @Bean
    public TomcatServletWebServerFactory tomcatFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.addConnectorCustomizers(connector -> {
            connector.setURIEncoding("UTF-8");
            // 其他自定义配置
        });
        return factory;
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:55:13