如何解决IBM Toolkit v10.0.0.7中EGit插件的仓库传输错误
解决IBM Toolkit EGit无法克隆/推送GitLab仓库的问题
从你的问题描述和错误日志(尤其是java.net.SocketException: Connection reset和IBM J9 JRE的信息)来看,核心矛盾是IBM Toolkit自带的JRE与EGit内置JGit的兼容性问题——毕竟Git Bash能正常操作,说明网络、仓库URL和凭据都是没问题的。以下是几个针对性的解决方案,按优先级尝试:
1. 导入GitLab SSL证书到IBM JRE信任库
IBM Toolkit使用独立的IBM J9 JRE,它的SSL证书信任库和Git Bash用的JRE(或系统证书库)不共享。即使你设置了http.sslVerify=false,JRE层面的SSL握手失败仍会导致连接重置。
操作步骤:
- 找到IBM Toolkit的JRE路径,通常是
[Toolkit安装根目录]/jdk/jre/lib/security - 导出GitLab的SSL证书:用浏览器打开你的GitLab地址,点击地址栏的锁图标,选择导出证书为Base64编码的.crt文件
- 打开命令提示符,切换到上述
security目录,执行导入命令:
(替换keytool -importcert -file D:\gitlab-cert.crt -keystore cacerts -alias gitlab-serverD:\gitlab-cert.crt为你的证书实际路径)- 默认的
cacerts密码是changeit,按提示完成导入
- 默认的
- 重启IBM Toolkit,再尝试克隆/推送操作
2. 让EGit使用外部Git客户端(复用Git Bash的配置)
既然Git Bash能正常工作,直接让EGit调用你已安装的Git客户端,完全复用它的SSL、凭据等配置,绕开JGit和IBM JRE的兼容性问题。
操作步骤:
- 在IBM Toolkit中点击
Window > Preferences > Team > Git > Configuration - 切换到
System Settings标签页,勾选Use Git from the command line - 在
Git executable中填入Git Bash的git.exe路径,比如C:\Program Files\Git\bin\git.exe - 点击
Apply and Close,重启Toolkit后测试克隆/推送
3. 切换EGit的HTTP客户端为Apache HttpClient
默认情况下EGit使用JDK自带的HTTP客户端,而IBM J9 JRE的HTTP客户端可能和GitLab的HTTPS服务存在兼容性问题,导致连接重置。切换到Apache HttpClient可以解决这类问题。
操作步骤:
- 打开
Window > Preferences > Team > Git > HTTP - 在
HTTP client下拉菜单中选择Apache HttpClient - 点击
Apply and Close,重新尝试操作
4. 确认EGit加载了正确的Git配置
有时候Git Bash中的全局配置不会被EGit自动读取,需要在Toolkit中直接配置http.sslVerify=false:
- 打开
Window > Preferences > Team > Git > Configuration - 切换到
User Settings标签页,点击Add Entry - 填入键:
http.sslVerify,值:false,点击OK保存 - 重启Toolkit后测试
内容的提问来源于stack exchange,提问作者Prs
相关产品推荐
相关产品推荐

