2013-10-19 2 views
0

자바를 사용하여 SMS를 보내려고했지만 처음에는 thilio로 시도했습니다. 그러나 맨 아래에 오류가 있습니다. 다운로드 한 후 nexmo에서 계정을 만들었지 만 다시 작성했습니다. 나는 동일한 오류가 발생합니다. 제발 두 사람에 대해 이미 일한 사람이라면이 문제가 왜 발생하는지 알 수 있습니다. 라인 (32)이 줄 클라이언트 = 새로운 NexmoSmsClient (API_KEY, API_SECRET)을 의미nexmo 또는 thilio를 사용하여 SMS를 보낼 수 없습니다.

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 

다음

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() + " ] ..."); 
     } 
    } 

} 

에러이고;

답변

1

왜 라이브러리를 사용하려고합니까? 일반적으로 이동 통신사를 알고있는 한 전자 메일을 통해 SMS 텍스트를 보낼 수 있습니다. 대개 [email protected] 또는 그와 비슷한 것입니다. http://20somethingfinance.com/how-to-send-text-messages-sms-via-email-for-free/

+0

내가 웹에서 SMS를 보낼 당신이 nexmo-sdk.jar 넣을 때마다 해당 파일을 복사하는 방법을 application.So 말해주십시오 해야 할 것? – SpringLearner

+0

SMS 이메일 게이트웨이 대신 전용 API를 사용해야하는 이유는 많습니다. 내 머리 꼭대기에서 : 전자 메일 게이트웨이를 통해 전송되는 메시지는 일반적으로 안정적으로 배달되지 않으므로 전자 메일 게이트웨이를 사용하여 들어오는 SMS 메시지를받을 수 없습니다. –

0

그것은 당신이 이상 복사하지 않은 외부 종속성이 사용하는 lib에는 Nexmo과 같습니다

여기에 캐리어 주소 목록이있는 사이트입니다. Nexmo library documentation page에서

:

설치

당신은 당신의 응용 프로그램에 nexmo-sdk.jar를 복사하여 귀하의 클래스 경로에 그 을 확인해야합니다. 또한/lib 디렉토리 아래에 일부 라이브러리 종속성이 있으며 해당 응용 프로그램 클래스 경로에 아직 복사되어 있지 않은 경우 응용 프로그램 클래스 경로에도 복사해야합니다.

그래서, 당신은 다운로드 ZipFile에의 SDK /lib 디렉토리에보고,

관련 문제