src/de/uhilger/minsrv/App.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/minsrv/Server.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/minsrv/handler/StopServerHandler.java | ●●●●● patch | view | raw | blame | history |
src/de/uhilger/minsrv/App.java
@@ -23,7 +23,26 @@ import java.util.logging.Logger; /** * Die Hauptklasse des mini-server * <p>Die Hauptklasse des mini-server</p> * * <p>Folgende Kommandozeilenparameter werden verarbeitet </p> * * <p>ctx - Kontext des Servers <br> * www-data - lokales Datenverzeichnis <br> * port - Port</p>> * * <p>Beispiel: <code>java -jar mini-server.jar ctx="srv" www-data="/home/fred/www" * port=9090</code></p> * * <p>Startet den Server auf http://localhost:9090/srv und liefert Inhalte aus * dem Verzeichnis <code>/home/fred/www</code> aus. * * Ein Aufruf von http://localhost:9090/srv/pfad/zum/inhalt/index.html liefert * also die Datei 'index.html' aus dem Ordner /home/fred/www/pfad/zum/inhalt * aus.</p> * * <p>Mit http://localhost:9090/srv/server/stop werden Server und App * beendet.</p> * * @author Ulrich Hilger * @version 0.1, 25.03.2021 @@ -39,20 +58,7 @@ private static HashMap initParams; /** * Start-Methode dieser Anwendung * * Folgende Kommandozeilenparameter werden verarbeitet ctx - Kontext des * Servers www-data - lokales Datenverzeichnis port - Port * * Beispiel: java -jar mini-server.jar ctx="srv" www-data="/home/fred/www" * port=9090 * * Startet den Server auf http://localhost:9090/srv und liefert Inhalte aus * dem Verzeichnis /home/fred/www aus. * * Ein Aufruf von http://localhost:9090/srv/pfad/zum/inhalt/index.html liefert * also die Datei 'index.html' aus dem Ordner /home/fred/www/pfad/zum/inhalt * aus. * <p>Start-Methode dieser Anwendung</p> * * @param args Kommandozeilenparameter */ src/de/uhilger/minsrv/Server.java
@@ -38,7 +38,7 @@ private static final Logger logger = Logger.getLogger(Server.class.getName()); public static final String STR_SLASH = "/"; public static final String CMD_SERVER_STOP = "/server/stop"; private int port; @@ -86,7 +86,7 @@ HttpServer server = HttpServer.create(new InetSocketAddress(port), 0); server.createContext(ctx + STR_SLASH, new FileHandler(App.getInitParameter(App.IP_WWW_DATA))); server.createContext(ctx + "/server/stop", new StopServerHandler()); server.createContext(ctx + CMD_SERVER_STOP, new StopServerHandler()); server.setExecutor(Executors.newFixedThreadPool(20)); server.start(); } src/de/uhilger/minsrv/handler/StopServerHandler.java
@@ -33,6 +33,14 @@ */ public class StopServerHandler implements HttpHandler { /** * Den Server geordnet herunterfahren und * dann die Anwendung beenden. * * @param e das Objekt mit Methoden zur Untersuchung der Anfrage sowie zum * Anfertigen und Senden der Antwort * @throws IOException falls etwas schief geht entsteht dieser Fehler */ @Override public void handle(HttpExchange e) throws IOException { Logger.getLogger(StopServerHandler.class.getName()).info(e.getRequestURI().toString()); @@ -48,6 +56,10 @@ timer.schedule(new AppStopper(), 2000); } /** * Die Klasse AppStopper ermöglicht das asnychrone bzw. * zeitgesteuerte Stoppen der Anwendung. */ class AppStopper extends TimerTask { @Override