package Ġcom . github . om arm iate l lo . actions . utils Ċ Ċ import Ġcom . github . om arm iate l lo . actions . My Actions App Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . util . concurrent . ExecutionException Ċ import Ġjavax . servlet . annotation . Web Servlet Ċ import Ġjavax . servlet . http . HttpServlet Ċ import Ġjavax . servlet . http . HttpServletRequest Ċ import Ġjavax . servlet . http . HttpServletResponse Ċ Ċ /** Ċ Ġ* ĠHandles Ġrequest Ġreceived Ġvia ĠHTTP ĠPOST Ġand Ġdeleg ates Ġit Ġto Ġyour ĠActions Ġapp . ĠSee : Ġ[ Request Ċ Ġ* Ġhandling Ġin ĠGoogle ĠApp Ċ Ġ* ĠEngine ]( https :// cloud . google . com / appengine / docs / standard / java / how - requests - are - handled ). Ċ Ġ*/ Ċ @ Web Servlet ( name Ġ= Ġ" actions ", Ġvalue Ġ= Ġ[" /" ]) Ċ class ĠActions Servlet Ġ: ĠHttpServlet () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġactions App Ġ= ĠMy Actions App () ĊĊĠĠĠ Ġoverride Ġfun Ġdo Get ( request : ĠHttpServletRequest , Ġresponse : ĠHttpServletResponse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresponse . contentType Ġ= Ġ" text / plain " ĊĠĠĠĠĠĠĠ Ġresponse . write (" Actions Servlet Ġis Ġlistening Ġbut Ġrequires Ġvalid ĠPOST Ġrequest Ġto Ġrespond Ġwith ĠAction Ġresponse .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdo Post ( req : ĠHttpServletRequest , Ġres : ĠHttpServletResponse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġreq . body String ĊĠĠĠĠĠĠĠ ĠLOG . info (" do Post , Ġbody Ġ= Ġ{}", Ġbody . length ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Response Ġ= Ġactions App . handle Request ( body , Ġreq . headers Map ). get () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . info (" Generated Ġjson Ġ= Ġ{}", Ġjson Response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . contentType Ġ= Ġ" application / json " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . write ( json Response ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Error ( res , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠExecution Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Error ( res , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Error ( res : ĠHttpServletResponse , Ġthrowable : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLOG . error (" Error Ġin ĠApp . handle Request Ġ", Ġthrowable ) ĊĠĠĠĠĠĠĠ Ġres . write (" Error Ġhandling Ġthe Ġintent Ġ- Ġ" Ġ+ Ġthrowable . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLOG Ġ= ĠLoggerFactory . getLogger ( My Actions App :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ