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

Eclipse 2022-12创建Quarkus项目遇远程主机终止握手错误

Eclipse创建Quarkus项目时SSL握手错误的解决方案

问题场景

使用JEE Eclipse 2022-12 (4.26.0),通过项目向导创建Quarkus项目,完成配置点击「完成」后,弹出错误提示:

创建Quarkus项目时遇到问题:Remote host terminated the handshake

错误日志详情:

javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake
    at java.base/sun.security.ssl.SSLSocketImpl.handleEOF(SSLSocketImpl.java:1714)
    at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1513)
    at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1420)
    at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)
    at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384)
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:401)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
    at org.jboss.tools.quarkus.core.code.model.QuarkusModelRegistry.zip(QuarkusModelRegistry.java:176)
    at org.jboss.tools.quarkus.ui.wizard.CodeProjectWizardController.getZip(CodeProjectWizardController.java:67)
    at org.jboss.tools.quarkus.ui.wizard.CodeProjectWizardController.run(CodeProjectWizardController.java:55)
    at org.eclipse.core.runtime.jobs.Job$1.run(Job.java:166)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.io.EOFException: SSL peer shut down incorrectly
    at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:483)
    at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472)
    at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:160)
    at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111)
    at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1505)
    ... 20 more

解决方案

1. 验证JDK版本兼容性

Quarkus对JDK版本有明确要求,优先使用JDK 11或17,避免使用过旧(如JDK 8)或未兼容的新版本JDK。

  • 打开Window > Preferences > Java > Installed JREs,确认当前Eclipse使用的JDK版本
  • 若版本不符,添加兼容的JDK并设置为默认

2. 配置Eclipse网络代理

如果处于内网环境或需要代理访问外部资源:

  • 打开Window > Preferences > General > Network Connections
  • 将「Active Provider」设置为Manual,分别配置HTTP和HTTPS的代理地址、端口
  • 若代理需要认证,勾选「Proxy authentication」并填写账号密码
  • 应用设置后重启Eclipse

3. 更新Quarkus插件

旧版本插件可能存在SSL握手相关的bug:

  • 打开Help > Eclipse Marketplace
  • 搜索「Quarkus」,找到已安装的插件点击「Update」
  • 完成更新后重启Eclipse

4. 手动创建并导入项目

绕过Eclipse向导,直接生成项目后导入:

  • 使用Quarkus官方项目生成工具,选择所需依赖和配置生成项目压缩包
  • 解压压缩包后,在Eclipse中选择File > Import > Existing Maven Projects,导入解压后的项目文件夹

5. 导入SSL证书到JDK信任存储

如果系统缺少Quarkus相关服务器的CA证书,会导致握手失败:

  • 获取对应服务器的SSL证书文件
  • 使用JDK的keytool命令导入证书到信任存储:
    keytool -import -alias quarkus-server -file cert.crt -keystore $JAVA_HOME/jre/lib/security/cacerts
    
  • 默认信任存储密码为changeit,执行命令后按提示确认导入

内容的提问来源于stack exchange,提问作者Learn-techie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:30:39