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

Open Liberty是否支持HTTP/2?配置及PushBuilder空指针问题咨询

问题解答:Open Liberty HTTP/2支持与PushBuilder NullPointerException问题

1. Open Liberty对HTTP/2的支持

Open Liberty完全支持HTTP/2,而且你已经在server.xml里做了正确的开启配置:

<httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint" >
    <httpOptions http2="enabled" />
</httpEndpoint>

这个配置是生效的,不需要额外的其他配置来开启HTTP/2。

2. 解决req.newPushBuilder()返回NullPointerException的问题

你遇到的空指针问题,核心原因是HTTP/2服务器推送仅支持HTTPS连接——如果你的请求是通过HTTP(9080端口)发送的,PushBuilder会直接返回null。

你可以按以下步骤调整:

  • 改用HTTPS协议访问你的Servlet,也就是访问https://localhost:9443/[你的Servlet映射路径]
  • 确认你的Open Liberty版本支持Servlet 4.0(对应Java EE 8),Open Liberty 18.0.0.2及以后的版本都支持这一特性,你的Java 9版本是完全兼容的。

额外验证点:

  • 检查你的Servlet是否通过@WebServlet注解或web.xml完成了正确的路径映射
  • 可以在浏览器开发者工具的「网络」面板里,查看请求的协议是否为h2(HTTP/2的标识),以此确认HTTP/2是否正常启用

你的代码本身逻辑是没问题的,只要切换到HTTPS连接,PushBuilder就能正常实例化,不会再返回null。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:30:19