【问题标题】:Twilio: java.lang.NoClassDefFoundError: com/twilio/sdk/TwilioRestExceptionTwilio:java.lang.NoClassDefFoundError:com/twilio/sdk/TwilioRestException
【发布时间】:2016-08-13 14:08:47
【问题描述】:

我正在尝试使用 twillio 发送短信,代码如下:

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;
}

}

只是一个测试,所以我不关心性能、代码清理等。调用 servlet 我收到以下错误:

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

我用的是maven,导入了相关的twillio api,这里是pom依赖:

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

有人有什么建议吗? 提前谢谢你。

【问题讨论】:

    标签: java maven twilio twilio-api


    【解决方案1】:

    也许compile 缺少的&lt;scope&gt; 是问题所在:

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

    关于开发环境的完整详细说明:

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

    【讨论】:

      【解决方案2】:

      我有一个像这样分层的疲惫的应用程序

      网络服务 服务 道 常见

      我在服务模块中调用 twilio,因此我将 maven 依赖项放在了该 maven 模块的 pom 文件中。出于某种原因,我一直收到与您相同的错误。将依赖项添加到 WebServices 模块解决了问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-05
        • 1970-01-01
        相关资源
        最近更新 更多