104 Star 1.6K Fork 418

dromara / SMS4J

 / 详情

使用问题咨询:org.dromara.sms4j.comm.exception.SmsBlendException: 不支持当前供应商配置

待办的
创建于  
2024-03-02 12:16

版本信息 (必填):

当前使用的版本(必填):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、最后补充一下,框架很吸引,集成很方便,很多细节做的不错,比如验证码工具、延迟发送,回调等,希望作者看到后能帮忙看看我的问题,感谢,头一次提问题。

评论 (2)

Dream422 创建了任务

jfinal框架的使用者确实用到的较少,后续我们会根据jfinal框架来出一些文档或适配性优化。
感谢提出的建议,后续确实有接入运营商的计划,不过目前测试的资质比较难搞(毕竟开源不是公司,没有那么全的资质)。希望后续继续支持

大佬,我的问题就啥原因了? :sweat:

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
8830369 mr wind 1681565947
Java
1
https://gitee.com/dromara/sms4j.git
git@gitee.com:dromara/sms4j.git
dromara
sms4j
SMS4J

搜索帮助