当前使用的版本(必填):3.1.1
JDK 版本(必填) : JDK 8
运行时提示:org.dromara.sms4j.comm.exception.SmsBlendException: 不支持当前供应商配置
1、参考官方文档springboot的集成方式,本人使用jfinal框架。
2、在ReadConfig中配置如下:
@Override
public BaseConfig getSupplierConfig(String configId) {
AlibabaConfig config = new AlibabaConfig();
config.setAccessKeyId("***");
config.setAccessKeySecret("***");
config.setSignature("**系统");
config.setConfigId("tx1");
System.out.println("loadConfig实例化短信:"+config.getSupplier());
return config;
}
@Override
public List<BaseConfig> getSupplierConfigList() {
List<BaseConfig> list = new ArrayList<>();
AlibabaConfig config = new AlibabaConfig();
config.setAccessKeyId("***");
config.setAccessKeySecret("***");
config.setSignature("***系统");
config.setConfigId("tx1");
list.add(config);
return list;
}
3、由于采用JFINAL框架,所以初始化的代码如下:
public void init() {
ReadConfig config=new ReadConfig();
System.out.println("供应商="+config.getSupplierConfig("tx1").getSupplier());
BaseConfig supplierConfig = config.getSupplierConfig("tx1");
System.out.println(supplierConfig.getSupplier()+"-----------");
BaseProviderFactory factory = ProviderFactoryHolder.requireForSupplier(supplierConfig.getSupplier());
System.out.println(factory+"===========");
SmsFactory.createSmsBlend(config);
System.out.println("init msg ok");
上述代码中从第二行到第五行是根据报错原因把框架部分代码单独抽出来分析原理,代码运行后,factory这里提示NULL。
运行情况可以看图1,找了很长时间,没找到原因,如果采用yml方式是可以的,但项目实际情况还是希望通过动态获取。
几个小建议
1、 希望作者能提供jfinal框架的集成说明文档与DEMO,纯个人诉求,没兴趣可以忽略;
2、文档建议给出一些常见问题的解决方案,通过大家的反馈,肯定多少有一些共性;
3、个人感觉,实际项目中,针对短信的需求一般都是单一渠道多一些,多种渠道应该就少见,建议针对单一的动态配置与使用能详细描述下,技术很菜,只会CRUD,确实很难看懂。
4、文档中提到短信限制需要实现短信拦截,这个拦截该咋处理,文档没找到说明,可能技术确实菜,希望作者能详细给描述下,实际项目中,由于短信涉及到费用问题,比如限制单日、月条数量、限制单个手机号数量,这些需求还是很多。
5、说一点关于本框架后续升级的发展,个人建议产品本身应该在短信场景上发力,尽可能把业务相关的功能、文档做细,厂家这一块有几家常用的就可以了,比如阿里、华为、腾讯,说实话,本人很多年项目管理经验,感觉还是这些比较多,另外除了这些就是直接对接运营商了,像其他好多都没听过,其实有个扩展就可以,说到底还是希望在短信本省上能给与较多的功能跟相关资料。
6、最后补充一下,框架很吸引,集成很方便,很多细节做的不错,比如验证码工具、延迟发送,回调等,希望作者看到后能帮忙看看我的问题,感谢,头一次提问题。