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

TomEE部署SymmetricDS War包时Slave节点注册报错求助

解决SymmetricDS从节点注册时的OkHttp SSL Socket Factory空参数错误

我之前碰到过类似的SymmetricDS和OkHttp集成问题,这个错误的核心原因很清晰:OkHttp的OkHttpClient$Builder.sslSocketFactory方法要求传入非空的sslSocketFactory参数,但实际传入了null。结合你给出的配置和部署场景,下面是可能的原因和对应的解决办法:

可能的原因及解决方案

1. 未明确禁用HTTPS配置

你的symmetric-server.properties里把https.enable=false注释掉了,虽然默认值可能是false,但某些SymmetricDS版本或TomEE的类加载机制可能会导致配置读取异常,触发HTTPS相关的客户端初始化逻辑。

  • 解决办法:把注释掉的https.enable=false取消注释,明确禁用HTTPS:
    https.enable=false
    

2. SymmetricDS与OkHttp版本冲突

TomEE服务器自带的OkHttp版本可能和SymmetricDS依赖的OkHttp版本不兼容。比如SymmetricDS 4.x通常依赖OkHttp 3.x的特定版本,如果TomEE提供的是更高版本的OkHttp,就会出现这种参数非空校验的问题(新版本OkHttp对参数非空的校验更严格)。

  • 解决办法:
    • 检查SymmetricDS官方文档,确认对应版本依赖的OkHttp版本;
    • 在你的War包中排除TomEE自带的OkHttp依赖,确保使用SymmetricDS兼容的版本(可以通过修改Maven/Gradle的依赖排除配置实现)。

3. 系统属性或环境变量强制启用SSL

可能存在你没注意到的系统属性或环境变量开启了HTTPS,比如设置了symmetric.https.enable=true,导致即使配置文件里禁用了HTTPS,SymmetricDS还是尝试初始化SSL客户端。

  • 解决办法:
    • 检查TomEE的启动脚本或系统环境变量,移除任何强制启用SSL的属性;
    • 启动TomEE时可以添加参数-Dsymmetric.https.enable=false来强制覆盖配置。

4. TomEE全局SSL配置影响

如果你的TomEE服务器配置了全局SSL(比如在server.xml里设置了HTTPS连接器),可能会让SymmetricDS的客户端请求默认使用SSL连接,但你没有为SymmetricDS配置对应的SSL证书和密钥,导致sslSocketFactory无法初始化,传入null。

  • 解决办法:
    • 确保SymmetricDS的registration.url和sync.url使用的是http://而不是https://(你的配置里已经是http,这一步可以确认下);
    • 如果不需要全局SSL,可以暂时关闭TomEE的HTTPS连接器测试。

验证步骤

修改配置后,按以下步骤验证:

  • 停止主节点和从节点的War包;
  • 清理TomEE的work和temp目录,避免缓存的配置影响;
  • 重新启动主节点,确认主节点正常运行;
  • 启动从节点,观察日志是否还出现该错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 13:17:46