1.修复群发短信始终抛出异常的问题

This commit is contained in:
wind 2024-04-08 15:51:56 +08:00
parent c2adc018e0
commit 067c08ab46
5 changed files with 40 additions and 12 deletions

View File

@ -52,7 +52,7 @@
</scm>
<properties>
<revision>3.2.0</revision>
<revision>3.2.1-SNAPSHOT</revision>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

View File

@ -93,7 +93,6 @@ public class CoreMethodParamValidateProcessor implements CoreMethodProcessor {
}
}
}
throw new SmsBlendException("cant send message to null!");
}
public void validateMessages(String templateId, LinkedHashMap<String, String> messages) {

View File

@ -15,6 +15,7 @@ import org.dromara.sms4j.api.SmsBlend;
import org.dromara.sms4j.api.dao.SmsDao;
import org.dromara.sms4j.api.dao.SmsDaoDefaultImpl;
import org.dromara.sms4j.api.universal.SupplierConfig;
import org.dromara.sms4j.api.verify.PhoneVerify;
import org.dromara.sms4j.cloopen.config.CloopenFactory;
import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.exception.SmsBlendException;
@ -51,6 +52,7 @@ import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.ServiceLoader;
/**
* 初始化类
@ -132,7 +134,15 @@ public class SEInitializer {
SmsProxyFactory.addProcessor(new BlackListProcessor());
SmsProxyFactory.addProcessor(new BlackListRecordingProcessor());
SmsProxyFactory.addProcessor(new SingleBlendRestrictedProcessor());
SmsProxyFactory.addProcessor(new CoreMethodParamValidateProcessor());
//如果手机号校验器存在实现则注册手机号校验器
ServiceLoader<PhoneVerify> loader = ServiceLoader.load(PhoneVerify.class);
if (loader.iterator().hasNext()) {
loader.forEach(f -> {
SmsProxyFactory.addProcessor(new CoreMethodParamValidateProcessor(f));
});
} else {
SmsProxyFactory.addProcessor(new CoreMethodParamValidateProcessor(null));
}
}catch (Exception e){
log.error("配置对象转换配置信息失败但不影响基础功能的使用。【注意】未加载SMS4J扩展功能模块拦截器参数校验可能失效");
}
@ -198,7 +208,15 @@ public class SEInitializer {
SmsProxyFactory.addProcessor(new BlackListProcessor());
SmsProxyFactory.addProcessor(new BlackListRecordingProcessor());
SmsProxyFactory.addProcessor(new SingleBlendRestrictedProcessor());
SmsProxyFactory.addProcessor(new CoreMethodParamValidateProcessor());
//如果手机号校验器存在实现则注册手机号校验器
ServiceLoader<PhoneVerify> loader = ServiceLoader.load(PhoneVerify.class);
if (loader.iterator().hasNext()) {
loader.forEach(f -> {
SmsProxyFactory.addProcessor(new CoreMethodParamValidateProcessor(f));
});
} else {
SmsProxyFactory.addProcessor(new CoreMethodParamValidateProcessor(null));
}
for (String configId : blends.keySet()) {
Map<String, Object> configMap = blends.get(configId);
Object supplierObj = configMap.get(Constant.SUPPLIER_KEY);

View File

@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.aliyun.config.AlibabaFactory;
import org.dromara.sms4j.api.SmsBlend;
import org.dromara.sms4j.api.universal.SupplierConfig;
import org.dromara.sms4j.api.verify.PhoneVerify;
import org.dromara.sms4j.cloopen.config.CloopenFactory;
import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.utils.SmsUtils;
@ -37,6 +38,7 @@ import org.noear.solon.core.AppContext;
import java.util.List;
import java.util.Map;
import java.util.ServiceLoader;
@Slf4j
@ -72,7 +74,15 @@ public class SmsBlendsInitializer {
SmsProxyFactory.addProcessor(new BlackListProcessor());
SmsProxyFactory.addProcessor(new BlackListRecordingProcessor());
SmsProxyFactory.addProcessor(new SingleBlendRestrictedProcessor());
SmsProxyFactory.addProcessor(new CoreMethodParamValidateProcessor());
//如果手机号校验器存在实现则注册手机号校验器
ServiceLoader<PhoneVerify> loader = ServiceLoader.load(PhoneVerify.class);
if (loader.iterator().hasNext()) {
loader.forEach(f -> {
SmsProxyFactory.addProcessor(new CoreMethodParamValidateProcessor(f));
});
} else {
SmsProxyFactory.addProcessor(new CoreMethodParamValidateProcessor(null));
}
// 解析供应商配置
for(String configId : blends.keySet()) {
Map<String, Object> configMap = blends.get(configId);

View File

@ -91,10 +91,10 @@ public class SmsBlendsInitializer {
//如果手机号校验器存在实现则注册手机号校验器
ServiceLoader<PhoneVerify> loader = ServiceLoader.load(PhoneVerify.class);
if (loader.iterator().hasNext()) {
loader.forEach(f->{
loader.forEach(f -> {
SmsProxyFactory.addProcessor(new CoreMethodParamValidateProcessor(f));
});
}else {
} else {
SmsProxyFactory.addProcessor(new CoreMethodParamValidateProcessor(null));
}
@ -138,11 +138,12 @@ public class SmsBlendsInitializer {
ProviderFactoryHolder.registerFactory(DingZhongFactory.instance());
ProviderFactoryHolder.registerFactory(QiNiuFactory.instance());
ProviderFactoryHolder.registerFactory(BudingV2Factory.instance());
if(SmsUtils.isClassExists("com.jdcloud.sdk.auth.CredentialsProvider")) {
if (SmsUtils.isClassExists("com.jdcloud.sdk.auth.CredentialsProvider")) {
if (SmsUtils.isClassExists("com.jdcloud.sdk.auth.CredentialsProvider")) {
ProviderFactoryHolder.registerFactory(JdCloudFactory.instance());
}
log.debug("加载内置运营商完成!");
}
}
}