#set($symbol_pound='#') #set($symbol_dollar='$') #set($symbol_escape='\' ) package ${package}; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.io.BufferedReader; import java.io.InputStreamReader; import java.nio.file.Files; import java.nio.file.Paths; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.handler.AbstractHandler; public class Application extends AbstractHandler { private static final int DEFAULT_PORT = 5000; private static final int PAGE_SIZE = 3000; private static final String INDEX_HTML = loadIndex(); private static String loadIndex() { try (BufferedReader reader = new BufferedReader(new InputStreamReader(Application.class.getResourceAsStream("/index.html")))) { final StringBuilder page = new StringBuilder(PAGE_SIZE); String line = null; while ((line = reader.readLine()) != null) { page.append(line); } return page.toString(); } catch (final Exception exception) { return getStackTrace(exception); } } private static String getStackTrace(final Throwable throwable) { final StringWriter stringWriter = new StringWriter(); final PrintWriter printWriter = new PrintWriter(stringWriter, true); throwable.printStackTrace(printWriter); return stringWriter.getBuffer().toString(); } private static int getPort() { String port = System.getenv().get("PORT"); return port == null ? DEFAULT_PORT : Integer.parseInt(port); } public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html;charset=utf-8"); response.setStatus(HttpServletResponse.SC_OK); baseRequest.setHandled(true); response.getWriter().println(INDEX_HTML); } public static void main(String[] args) throws Exception { Server server = new Server(getPort()); server.setHandler(new Application()); server.start(); server.join(); } }