невозможно отправить смс с помощью nexmo или thilio

Я пытался отправить sms, используя java, и для этого я сначала попробовал с thilio, но у меня возникла ошибка, о которой говорится внизу. Затем я загрузил, создал учетную запись в nexmo, но снова получаю ту же ошибку. уже работал над двумя вышеупомянутыми, могу сказать мне, почему возникла эта проблема.

import com.nexmo.messaging.sdk.NexmoSmsClient;
import com.nexmo.messaging.sdk.SmsSubmissionResult;
import com.nexmo.messaging.sdk.messages.TextMessage;

public class SendTextMessage {

    public static final String API_KEY = "apikey";
    public static final String API_SECRET = "apisecret";

    public static final String SMS_FROM = "singapore_number";// as i use my office number so can not disclose it
    public static final String SMS_TO = "singapre_number";
    public static final String SMS_TEXT = "Hello World!";

    public static void main(String[] args) {

        // Create a client for submitting to Nexmo

        NexmoSmsClient client = null;
        try {
            client = new NexmoSmsClient(API_KEY, API_SECRET);
        } catch (Exception e) {
            System.err.println("Failed to instanciate a Nexmo Client");
            e.printStackTrace();
            throw new RuntimeException("Failed to instanciate a Nexmo Client");
        }

        // Create a Text SMS Message request object ...

        TextMessage message = new TextMessage(SMS_FROM, SMS_TO, SMS_TEXT);

        // Use the Nexmo client to submit the Text Message ...

        SmsSubmissionResult[] results = null;
        try {
            results = client.submitMessage(message);
        } catch (Exception e) {
            System.err.println("Failed to communicate with the Nexmo Client");
            e.printStackTrace();
            throw new RuntimeException("Failed to communicate with the Nexmo Client");
        }

        // Evaluate the results of the submission attempt ...
        System.out.println("... Message submitted in [ " + results.length + " ] parts");
        for (int i=0;i<results.length;i++) {
            System.out.println("--------- part [ " + (i + 1) + " ] ------------");
            System.out.println("Status [ " + results[i].getStatus() + " ] ...");
            if (results[i].getStatus() == SmsSubmissionResult.STATUS_OK)
                System.out.println("SUCCESS");
            else if (results[i].getTemporaryError())
                System.out.println("TEMPORARY FAILURE - PLEASE RETRY");
            else
                System.out.println("SUBMISSION FAILED!");
            System.out.println("Message-Id [ " + results[i].getMessageId() + " ] ...");
            System.out.println("Error-Text [ " + results[i].getErrorText() + " ] ...");

            if (results[i].getMessagePrice() != null)
                System.out.println("Message-Price [ " + results[i].getMessagePrice() + " ] ...");
            if (results[i].getRemainingBalance() != null)
                System.out.println("Remaining-Balance [ " + results[i].getRemainingBalance() + " ] ...");
        }
    }

}

ошибка заключается в следующем

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpEntity
    at SendTextMessage.main(SendTextMessage.java:32)
Caused by: java.lang.ClassNotFoundException: org.apache.http.HttpEntity
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 1 more

Строка 32 означает, что эта строка client = new NexmoSmsClient (API_KEY, API_SECRET);


person SpringLearner    schedule 19.10.2013    source источник


Ответы (2)


Почему вы пытаетесь использовать библиотеки? Как правило, вы можете отправлять SMS-сообщения по электронной почте, если знаете оператора связи. Обычно это [email protected] или что-то в этом роде.

Вот сайт со списком адресов операторов связи: http://20somethingfinance.com/how-to-send-text-messages-sms-via-email-for-free/

person creativecoding    schedule 19.10.2013
comment
Я хочу отправить смс из веб-приложения. Скажите, пожалуйста, как это сделать? - person SpringLearner; 19.10.2013
comment
Есть много причин использовать выделенный API вместо шлюзов электронной почты SMS. Вне моей головы: сообщения, отправленные через шлюз электронной почты, обычно не доставляются с такой надежностью, вы не можете получать входящие SMS-сообщения с помощью шлюза электронной почты. - person Drew Shafer; 29.05.2014

Похоже, что используемая вами библиотека Nexmo имеет внешнюю зависимость, которую вы не копировали.

На странице документации библиотеки Nexmo:

Установка

Вам нужно скопировать nexmo-sdk.jar в свое приложение и убедиться, что он находится в вашем пути к классам. Кроме того, в каталоге / lib есть некоторые зависимости библиотек, которые также должны быть скопированы в путь к классам вашего приложения, если их там еще нет.

Итак, загляните в каталог /lib загруженного вами zip-файла SDK и скопируйте эти файлы туда, куда вы положили nexmo-sdk.jar.

person Drew Shafer    schedule 29.05.2014