사용자가 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를 사용하는 응용 프로그램에 웹 훅을 만듭니다. 내가 메인을 가지고 있다면 작동하지만 여기 예제는 아무 것도주지 않는다.
이 코드를 실행하고 XML을 생성하는 방법에 대한 제안.
감사합니다. @Mithfindel,이 방법은 web.xml을 수동으로 구성하는 것보다 훨씬 낫습니다. 그러나 doPost() 메소드는 HTTP req/rep를 args로 사용합니다. 수동으로 인스턴스화하지 않고 필요한 메소드를 재정의하지 않고 어떻게 얻을 수 있습니까? – Jerum
SparkJava의 요청 문서 http://sparkjava.com/documentation#request를 참조하십시오. 실제로 Spark은 Java EE API의 "원시"HTTPServlet (요청 | 응답) 객체에 대한 래퍼를 제공합니다. – Mithfindel
또한''Spark.post'' 메소드의 두 번째 인자는 Twilio의 예제에서''doPost'' 메소드 대신에 사용되는 람다입니다. – Mithfindel