wechatpay-apiv3 / wechatpay-java

微信支付 APIv3 的官方 Java Library
Apache License 2.0
923 stars 206 forks source link

引入该 SDK 后,Spring 热加载会抛出异常 #171

Closed qiaomo closed 1 year ago

qiaomo commented 1 year ago

错误描述

引入该 SDK 后,Spring 热加载会抛出异常:

Caused by: java.lang.IllegalStateException: The corresponding provider for the merchant already exists.
        at com.wechat.pay.java.core.certificate.AbstractAutoCertificateProvider.<init>(AbstractAutoCertificateProvider.java:72) ~[wechatpay-java-core-0.2.7.jar:0.2.7]
        at com.wechat.pay.java.core.certificate.AbstractAutoCertificateProvider.<init>(AbstractAutoCertificateProvider.java:49) ~[wechatpay-java-core-0.2.7.jar:0.2.7]
        at com.wechat.pay.java.core.certificate.RSAAutoCertificateProvider.<init>(RSAAutoCertificateProvider.java:32) ~[wechatpay-java-core-0.2.7.jar:0.2.7]
        at com.wechat.pay.java.core.certificate.RSAAutoCertificateProvider.<init>(RSAAutoCertificateProvider.java:21) ~[wechatpay-java-core-0.2.7.jar:0.2.7]
        at com.wechat.pay.java.core.certificate.RSAAutoCertificateProvider$Builder.build(RSAAutoCertificateProvider.java:111) ~[wechatpay-java-core-0.2.7.jar:0.2.7]
        at com.wechat.pay.java.core.RSAAutoCertificateConfig$Builder.build(RSAAutoCertificateConfig.java:114) ~[wechatpay-java-core-0.2.7.jar:0.2.7]

但冷启动时没有问题,微信支付功能正常使用。

重现bug的步骤

1、引入该SDK 2、修改代码,Spring 热加载 3、异常抛出

预期行为

正常热重载,不抛出异常

导致错误的代码片段

No response

操作系统

macOS

Java 版本

Java 17

wechatpay-java 版本

v0.2.7

其他信息

No response