私はTwilio番号を呼び出したときにコードがXMLを生成し、それをHTTPレスポンスとして発信者に送信するように、コールを自動化しようとしています。ウェブページの例は次のとおりです:Sparkでサーバー上でJavaプログラムを実行するにはどうすればよいですか?
@SuppressWarnings("serial")
@WebServlet("/voice")
public class IncomingCallServlet extends HttpServlet {
// Handle HTTP POST to /voice
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Create a TwiML builder object
VoiceResponse twiml = new VoiceResponse.Builder()
.say(new Say.Builder("Hello world!")
.voice(Say.Voice.ALICE)
.build())
.build();
// Render TwiML as XML
response.setContentType("text/xml");
try {
response.getWriter().print(twiml.toXml());
} catch (TwiMLException e) {
e.printStackTrace();
}
}
}
しかし、主な方法がないので、これをどのように実行するのですか?私はsparkを使ってローカルポート上でそれを実行し、ngrokを使ってアプリケーションにWebhookを作成します。私はメインを持っていれば動作しますが、ここの例は何も与えません。
このコードを実行してXMLを生成する方法についての提案。
ありがとう@Mithfindel、これはweb.xmlを手動で設定するよりもはるかに良い方法です。しかし、doPost()メソッドはHTTP req/repをargsとして受け取ります。手動でインスタンス化せずに必要なメソッドをオーバーライドすることなく、どうすれば入手できますか? – Jerum
SparkJavaのリクエストドキュメントhttp://sparkjava.com/documentation#requestを参照してください。実際、SparkはJava EE APIからの "ネイティブ" HTTPServlet(Request | Response)オブジェクトのラッパーを提供しています。 – Mithfindel
また、 '' Spark.post''メソッドの第2引数はTwilioの例の '' doPost''メソッドに代わるラムダです。 – Mithfindel