从Vaadin 14到Vaadin 24的迁移:解决内存泄漏问题
引言在现代Web应用开发中,迁移到新的版本是常见的需求。最近,我们将一个基于Spring Boot的Vaadin应用从版本14升级到了版本24,同时也保留了之前使用的Keycloak和OAuth2登录功能。然而,在这个迁移过程中,我们遇到了一个令人头疼的问题——内存泄漏。特别是在应用程序启动后,首次用户尝试访问URL时,浏览器似乎在建立SSL会话时遇到了障碍。本文将详细探讨这个问题的根源,并分享我们如何解决这个问题的过程。问题描述当用户首次访问我们的应用程序URL(例如 www.app.com)时,我们会生成一个基于证书的JWK(JSON Web Key),然后将用户重定向到Keycloak进行身份验证。然而,在Vaadin 24中,这个过程引发了一个新的问题:错误日志: 出现SSL握手失败的错误日志,具体错误是javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated。这表明SSL会话在尝试从客户端获取证书时失败了。内存泄漏: 每次尝试建立SSL会话时,内存中会保留一个巨大的字节数组,导致堆内存急剧增加,从200MB增长到4.4GB。调试过程我们使用JProfiler进行应用性能分析,发现内存泄漏的直接原因是由于SSL
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2588209.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!