登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
代码拉取完成,页面将自动刷新
开源项目
>
微信开发
>
微信开发包
&&
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
3.2K
Star
18.7K
Fork
6K
GVP
Binary Wang
/
WxJava
代码
Issues
24
Pull Requests
0
Wiki
统计
流水线
服务
JavaDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
!-- 4.8.4+ 会默认引入 HttpClient5,与 Solon 依赖树冲突;
待办的
#IJYMVW
953559600
创建于
2026-07-03 16:26
能不能出个兼容solon的版本 ### 背景 我们在 **RuoYi-Solon**([ruoyi-solon](https://gitee.com/...))项目中集成 WxJava,运行环境为: - **框架**:Solon 4.0.2(非 Spring Boot、非 Servlet) - **JDK**:1.8+ - **使用模块**: - `weixin-java-miniapp`(小程序登录 `code2session`、手机号等) - `weixin-java-pay`(微信支付) - **集成方式**:直接依赖 SDK + 手动注册 Bean(**未使用** `wx-java-*-spring-boot-starter`) 相关初始化代码示例: // 小程序 WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); config.setAppid(appId); config.setSecret(secret); WxMaService service = new WxMaServiceImpl(); // 当前使用默认实现 service.setWxMaConfig(config); // 支付 WxPayConfig payConfig = new WxPayConfig(); // ... 设置 appId、mchId、key 等 WxPayServiceImpl wxPayService = new WxPayServiceImpl(); wxPayService.setConfig(payConfig); 问题描述 从 4.8.4+(及 PR #3834 相关变更)起,多个模块将默认 HTTP 实现迁移为 Apache HttpClient 5.x(HttpComponents),Maven 会默认传递引入: <dependency> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> </dependency> 这对 非 Starter、手动集成 的项目带来以下困难: 1. 无法通过配置文件选择 HTTP 客户端 文档中 http-client-type: HttpComponents / HttpClient / OkHttp 等配置,主要面向 Spring Boot Starter 用户。 像我们这样直接 new WxMaServiceImpl() 的项目,没有统一入口 在运行时切换 HTTP 实现,只能依赖 Maven 默认传递依赖 + 默认实现类。 2. Maven exclusion 与默认实现存在矛盾 我们尝试排除 HC5 以控制依赖体积、避免 HC4/HC5 混用: <dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-miniapp</artifactId> <exclusions> <exclusion> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> </exclusion> </exclusions> </dependency> 但排除后若默认实现类已切换为 *HttpComponentsImpl(依赖 HC5),运行时可能直接 ClassNotFoundException,而不是自动回退到 HC4 实现。 目前唯一稳妥方案是 锁定 4.8.0(仍走 HC4),从而无法跟进后续版本修复与新特性。 3. 与 Solon 等轻量框架的「冲突」易被误解 需要澄清:Solon 本身不依赖 Apache HttpClient(服务端用 smart-http,出站 HTTP 用 JDK HttpURLConnection / OkHttp)。 实际问题来自 WxJava 默认引入 HC5,与项目中其他仍使用 HC4 的库(或我们期望的轻量依赖树)产生: 依赖体积增加(HC5 较重) HC4 / HC5 包名、API 完全不同(org.apache.http.* vs org.apache.hc.*),classpath 混用增加维护成本 非 Spring 生态用户缺少「官方推荐」的集成路径 复现 / 依赖树对比 环境:Maven 3.x,WxJava 4.8.0 vs 4.8.4+ 4.8.0 依赖树(当前可用): weixin-java-miniapp:4.8.0 └─ weixin-java-common:4.8.0 ├─ httpclient:4.5.13 ← HC4 └─ httpmime:4.5.13 4.8.4+ 依赖树(问题版本): weixin-java-miniapp:4.8.4+ └─ weixin-java-common:4.8.4+ └─ httpclient5:x.x ← HC5 默认传递依赖 Solon 侧:整条依赖链 无 httpclient / httpclient5,冲突并非 Solon 框架引起。
能不能出个兼容solon的版本 ### 背景 我们在 **RuoYi-Solon**([ruoyi-solon](https://gitee.com/...))项目中集成 WxJava,运行环境为: - **框架**:Solon 4.0.2(非 Spring Boot、非 Servlet) - **JDK**:1.8+ - **使用模块**: - `weixin-java-miniapp`(小程序登录 `code2session`、手机号等) - `weixin-java-pay`(微信支付) - **集成方式**:直接依赖 SDK + 手动注册 Bean(**未使用** `wx-java-*-spring-boot-starter`) 相关初始化代码示例: // 小程序 WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); config.setAppid(appId); config.setSecret(secret); WxMaService service = new WxMaServiceImpl(); // 当前使用默认实现 service.setWxMaConfig(config); // 支付 WxPayConfig payConfig = new WxPayConfig(); // ... 设置 appId、mchId、key 等 WxPayServiceImpl wxPayService = new WxPayServiceImpl(); wxPayService.setConfig(payConfig); 问题描述 从 4.8.4+(及 PR #3834 相关变更)起,多个模块将默认 HTTP 实现迁移为 Apache HttpClient 5.x(HttpComponents),Maven 会默认传递引入: <dependency> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> </dependency> 这对 非 Starter、手动集成 的项目带来以下困难: 1. 无法通过配置文件选择 HTTP 客户端 文档中 http-client-type: HttpComponents / HttpClient / OkHttp 等配置,主要面向 Spring Boot Starter 用户。 像我们这样直接 new WxMaServiceImpl() 的项目,没有统一入口 在运行时切换 HTTP 实现,只能依赖 Maven 默认传递依赖 + 默认实现类。 2. Maven exclusion 与默认实现存在矛盾 我们尝试排除 HC5 以控制依赖体积、避免 HC4/HC5 混用: <dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-miniapp</artifactId> <exclusions> <exclusion> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> </exclusion> </exclusions> </dependency> 但排除后若默认实现类已切换为 *HttpComponentsImpl(依赖 HC5),运行时可能直接 ClassNotFoundException,而不是自动回退到 HC4 实现。 目前唯一稳妥方案是 锁定 4.8.0(仍走 HC4),从而无法跟进后续版本修复与新特性。 3. 与 Solon 等轻量框架的「冲突」易被误解 需要澄清:Solon 本身不依赖 Apache HttpClient(服务端用 smart-http,出站 HTTP 用 JDK HttpURLConnection / OkHttp)。 实际问题来自 WxJava 默认引入 HC5,与项目中其他仍使用 HC4 的库(或我们期望的轻量依赖树)产生: 依赖体积增加(HC5 较重) HC4 / HC5 包名、API 完全不同(org.apache.http.* vs org.apache.hc.*),classpath 混用增加维护成本 非 Spring 生态用户缺少「官方推荐」的集成路径 复现 / 依赖树对比 环境:Maven 3.x,WxJava 4.8.0 vs 4.8.4+ 4.8.0 依赖树(当前可用): weixin-java-miniapp:4.8.0 └─ weixin-java-common:4.8.0 ├─ httpclient:4.5.13 ← HC4 └─ httpmime:4.5.13 4.8.4+ 依赖树(问题版本): weixin-java-miniapp:4.8.4+ └─ weixin-java-common:4.8.4+ └─ httpclient5:x.x ← HC5 默认传递依赖 Solon 侧:整条依赖链 无 httpclient / httpclient5,冲突并非 Solon 框架引起。
评论 (
2
)
登录
后才可以发表评论
状态
待办的
待办的
进行中
已完成
已关闭
负责人
未设置
标签
未设置
标签管理
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (
-
)
标签 (
-
)
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(2)
Java
1
https://gitee.com/binary/weixin-java-tools.git
git@gitee.com:binary/weixin-java-tools.git
binary
weixin-java-tools
WxJava
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册