Skip to content

Instantly share code, notes, and snippets.

@kasonyang
Last active June 17, 2019 14:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kasonyang/f3d8364161144b0c49f9caf3a7b42272 to your computer and use it in GitHub Desktop.
Save kasonyang/f3d8364161144b0c49f9caf3a7b42272 to your computer and use it in GitHub Desktop.
#repository http://maven.aliyun.com/nexus/content/groups/public/
#dependency org.eclipse.jetty:jetty-server:9.4.12.v20180830
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
val entries = [
8000:"/path/to/project1",
8001:"/path/to/project2"
];
val host = "0.0.0.0";
foreach(entries.entrySet() as e) {
val port = e.getKey();
val path = e.getValue();
val thread = new Thread(new HServer(host,port,path));
thread.start();
println("${host}:${port} => ${path}");
}
while(true){
Thread.sleep(1000000);
}
static class HServer implements Runnable {
private String host;
private int port;
private String path;
constructor(String host,int port,String path) {
this.host = host;
this.port = port;
this.path = path;
}
override public void run() {
val server = new Server();
val connector = new ServerConnector(server);
connector.setHost(host);
connector.setPort(port);
server.addConnector(connector);
var resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[]{"index.html"});
resource_handler.setResourceBase(path);
var handlers = new HandlerList();
handlers.setHandlers(<Handler>[resource_handler, new DefaultHandler()]);
server.setHandler(handlers);
try {
server.start();
server.join();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment