2016-08-13 8 views
2

Ich versuche, eine SMS zu senden twillio verwenden, hier der Code:Twilio: java.lang.NoClassDefFoundError: com/Twilio/sdk/TwilioRestException

import com.twilio.sdk.TwilioRestClient; 
import com.twilio.sdk.TwilioRestException; 
import org.apache.http.NameValuePair; 
import org.apache.http.auth.Credentials; 
import org.apache.http.message.BasicNameValuePair; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.io.IOException; 

import java.util.ArrayList; 
import java.util.List; 
import java.util.logging.Logger; 

public class SendSms extends HttpServlet { 
    private Logger logger = Logger.getLogger(SendSms.class.getName()); 
    private TwilioRestClient client; 
    private Credentials credentials; 

@Override 
public void service(HttpServletRequest req, HttpServletResponse resp) throws IOException, 
     ServletException { 
    final String twilioAccountSid = System.getenv("TWILIO_ACCOUNT_SID"); 
    final String twilioAuthToken = System.getenv("TWILIO_AUTH_TOKEN"); 
    final String twilioNumber = System.getenv("TWILIO_NUMBER"); 
    final String toNumber = (String) twilioNumber; 
    String message = "prova"; 
    client = new TwilioRestClient(twilioAccountSid, twilioAuthToken); 
    sendMessage(toNumber, message); 
} 

public void sendMessage(String to, String message) { 
    List<NameValuePair> params = getParams(to, message); 

    try { 
     this.client.getAccount().getMessageFactory().create(params); 
    } catch (TwilioRestException exception) { 
     exception.printStackTrace(); 
    } 
} 

private List<NameValuePair> getParams(String to, String message) { 
    List<NameValuePair> params = new ArrayList<>(); 
    params.add(new BasicNameValuePair("Body", message)); 
    params.add(new BasicNameValuePair("To", to)); 
    params.add(new BasicNameValuePair("From", to)); 

    return params; 
} 

}

ist nur ein Test, damit ich egal wie performarce, code cleaning und so weiter. Der Aufruf der Servlet Ich erhalte den folgenden Fehler:

WARNING: Error for /SendSms 
java.lang.NoClassDefFoundError: com/twilio/sdk/TwilioRestException 

Ich bin mit Maven, die damit verbundenen twillio apis importieren, hier die pom Abhängigkeit:

<dependencies> 
    <dependency> 
     <groupId>com.twilio.sdk</groupId> 
     <artifactId>twilio-java-sdk</artifactId> 
     <version>(6.0,6.9)</version> 
    </dependency> 

Hat jemand einige Vorschläge hat? Vielen Dank im Voraus.

Antwort

0

Vielleicht ist das fehlende <scope> für compile ist das Problem:

<dependency> 
    <groupId>com.twilio.sdk</groupId> 
    <artifactId>twilio-java-sdk</artifactId> 
    <version>(6.0,6.9)</version> 
    <scope>compile</scope> 
</dependency> 

Und für die vollständigen detaillierten Anweisungen in Bezug auf die Entwicklungsumgebung:

https://www.twilio.com/docs/quickstart/java/devenvironment#pomxml

0

Ich habe eine müde Anwendung wie diese

geschichtet

WebServices Service s Gemeinsam

Ich rufe Twilio in der Service-Modul, so dass ich die Maven-Abhängigkeit in der Pom-Datei in diesem Maven-Modul. Aus irgendeinem Grund habe ich immer den gleichen Fehler bekommen wie du. Durch das Hinzufügen der Abhängigkeit zum WebServices-Modul wurde das Problem behoben

Verwandte Themen