开始使用Twilio SMS和raspberry pi

时间:2015-12-02 05:04:24

标签: java tomcat servlets raspberry-pi twilio

这更像是一个系统级问题,但我在使用Twilio java库和Rasberry pi 2上的Apache Tomcat 7时遇到了一些问题。我的最终目标是让Twilio将sms消息传递给raspberry pi用于控制一些简单的开关。 (目前为Overkill,但是pi提供的连接选项我想最终在系统中实现一些丰富的控制/交互性)

我正在尝试实现twilio的简单示例代码:

package com.twilio;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

import com.twilio.sdk.verbs.TwiMLResponse;
import com.twilio.sdk.verbs.TwiMLException;
import com.twilio.sdk.verbs.Message;

public class TwilioServlet extends HttpServlet {

// service() responds to both GET and POST requests.
// You can also use doGet() or doPost()
    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
        TwiMLResponse twiml = new TwiMLResponse();
        Message message = new Message("Hello, Mobile Monkey");
        try {
            twiml.append(message);
        } catch (TwiMLException e) {
            e.printStackTrace();
        }

        response.setContentType("application/xml");
        response.getWriter().print(twiml.toXML());
    }
}

我使用twilio库编译了这个,并将以下web.xml放在WEB-INF目录中:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <display-name>Twilio SMS App</display-name>

    <servlet>
        <servlet-name>TwilioServlet</servlet-name>
        <servlet-class>com.twilio.TwilioServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>TwilioServlet</servlet-name>
        <url-pattern>/sms</url-pattern>
    </servlet-mapping>

</web-app>

但是,当我在浏览器中加载此页面时,Tomcat会给我一个错误:

Apache Tomcat / 7.0.28 - 错误报告

HTTP状态404 -

类型状态报告

消息

描述请求的资源()不可用。

Apache Tomcat / 7.0.28

< / p>

偶尔如果我很幸运,服务器实际上会给我:

The requested resource (twilio/sms)

我写了一个不同的servlet来打印hello world,并且使用url扩展名twilio / hello显示正常。我认为这与Tomcat寻找Twilio api的东西有关,但我对Web开发或java不太熟悉,所以我有点不知所措。想法?

1 个答案:

答案 0 :(得分:0)

这是来自Twilio的Megan。

如果您说使用网址扩展名twilio/hello尝试了“Hello World”示例,我假设您已按照local dev environment setup here进行操作。

在以下示例中,代码看起来与您上面发布的内容几乎完全相同,但是您是否完成了标题为Let Twilio find your server的下一步?

除了快速入门,我发现使用Java和Apache Tomcat的these posts在第一次使用Java和Twilio时特别有用。

希望这有帮助!