1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dromara-sms4j

 / Детали:

Сообщение об ошибке: org.dromara.sms4j.comm.exception.SmsBlendException: Текущая конфигурация поставщика не поддерживается

Предстоит сделать
Владелец
Создано  
23.04.2025

Версия (обязательно):

Текущая используемая версия (обязательно): 3.1.1
Версия JDK (обязательно): JDK 8

Описание проблемы:

При выполнении появляется сообщение: org.dromara.sms4j.comm.exception.SmsBlendException: Текущая конфигурация поставщика не поддерживается

Скриншот ошибки

Анализ процесса

  1. Ссылка на интеграцию Spring Boot в официальной документации, я использую фреймворк 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: инициализация конфигурации SMS: " + 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;
}
  1. Поскольку используется фреймворк 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");
}
```  В вышеприведенном коде строки от 2 до 5 выделены для анализа принципа работы из-за ошибки. После выполнения кода, переменная factory содержит значение NULL.
Ситуация выполнения можно увидеть на рисунке 1. Я долго искал причину, но не смог её найти. Если использовать конфигурацию в формате yml, всё работает, но в реальном проекте хотелось бы использовать динамическое получение конфигурации.
**Несколько советов**
1. Я бы хотел, чтобы автор предоставил документацию по интеграции фреймворка JFinal и примеры (DEMO), это личное пожелание, можно проигнорировать, если нет интереса.
2. В документации было бы полезно указать решения для некоторых распространенных проблем, на основе отзывов пользователей, наверняка можно выделить некоторые общие моменты.
3. По моему мнению, в реальных проектах требования к отправке SMS чаще всего связаны с использованием одного канала, а использование нескольких каналов встречается реже. Предлагаю подробно описать настройку и использование для одного канала динамически. Моя техническая квалификация ограничивается CRUD-операциями, поэтому мне сложно понять более сложные конфигурации.4. В документации упоминается необходимость реализации фильтрации SMS, но конкретные методы реализации не описаны. Возможно, это связано с моей технической неопытностью, но я надеюсь, что автор сможет предоставить более подробное описание. В реальных проектах ограничения на отправку SMS связаны с финансовыми вопросами, такими как ограничение количества сообщений в день или месяц, ограничение количества сообщений для одного номера и другие подобные требования.

5. Хотел бы высказать своё мнение о будущем развитии этого фреймворка. Я считаю, что продукт должен больше внимания уделять функционалу для отправки SMS, улучшая документацию и функции, связанные с бизнес-процессами. Необходимость использования нескольких поставщиков услуг SMS, таких как Alibaba, Huawei и Tencent, ограничена. В реальных проектах чаще всего используются именно эти поставщики, а также прямое подключение к операторам связи. В конечном итоге, я надеюсь, что фреймворк будет предлагать больше функций и информации по работе с SMS.

6. В заключение хочу отметить, что фреймворк очень привлекателен и легко интегрируется. Многие детали реализованы на высоком уровне, такие как инструменты для работы с кодовыми словами, задержка отправки и обратные вызовы. Надеюсь, что автор сможет помочь мне разобраться с моими вопросами. Спасибо, это мой первый запрос.

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/dromara-sms4j.git
git@api.gitlife.ru:oschina-mirror/dromara-sms4j.git
oschina-mirror
dromara-sms4j
dromara-sms4j