blob: 2815125462c8bbba1a8b46aa47fcae896057dcce [file] [log] [blame]
hebastae2bd6e42020-03-03 19:07:20 +01001package de.ids_mannheim.korap.plkexport;
2
hebasta68a5bdd2020-03-07 13:44:17 +01003import java.io.File;
hebasta68a5bdd2020-03-07 13:44:17 +01004import java.util.Properties;
5
hebasta97c0a042020-03-24 21:26:44 +01006import org.eclipse.jetty.server.Handler;
hebastae2bd6e42020-03-03 19:07:20 +01007import org.eclipse.jetty.server.Server;
hebasta68a5bdd2020-03-07 13:44:17 +01008import org.eclipse.jetty.server.ServerConnector;
hebasta97c0a042020-03-24 21:26:44 +01009import org.eclipse.jetty.server.handler.ContextHandler;
10import org.eclipse.jetty.server.handler.DefaultHandler;
11import org.eclipse.jetty.server.handler.HandlerList;
12import org.eclipse.jetty.server.handler.ResourceHandler;
hebastae2bd6e42020-03-03 19:07:20 +010013import org.eclipse.jetty.servlet.ServletContextHandler;
14import org.eclipse.jetty.servlet.ServletHolder;
15
hebastae2bd6e42020-03-03 19:07:20 +010016public class PluginServer {
17 public static void main (String[] args) throws Exception {
18
19
20 ServletContextHandler contextHandler = new ServletContextHandler(
Akronc931cd02020-09-15 10:54:17 +020021 ServletContextHandler.NO_SESSIONS);
hebastae2bd6e42020-03-03 19:07:20 +010022 contextHandler.setContextPath("/");
23
Akronc931cd02020-09-15 10:54:17 +020024 Properties properties = ExWSConf.properties(null);
hebasta68a5bdd2020-03-07 13:44:17 +010025
26 //Default: Server is available under http://localhost:7070/
27 String portStr = properties.getProperty("server.port", "7070");
28 String host = properties.getProperty("server.host", "localhost");
29 int port = Integer.parseInt(portStr);
30
31 Server jettyServer = new Server();
32 ServerConnector connector = new ServerConnector(jettyServer);
33 connector.setPort(port);
34 connector.setHost(host);
35 connector.setIdleTimeout(60000);
36 jettyServer.addConnector(connector);
hebasta97c0a042020-03-24 21:26:44 +010037
38 ResourceHandler resourceHandler= new ResourceHandler();
39 String resourceBase ="templates";
40 //If server is started as jar-file in target directory
41 if(!new File("templates").exists()) {
42 resourceBase = "../" + resourceBase;
43 }
hebasta68a5bdd2020-03-07 13:44:17 +010044
hebasta97c0a042020-03-24 21:26:44 +010045 resourceHandler.setResourceBase(resourceBase);
46 //enable directory listing
47 resourceHandler.setDirectoriesListed(true);
48 ContextHandler contextHandRes= new ContextHandler("/res");
49 contextHandRes.setHandler(resourceHandler);
50
51 HandlerList handlers = new HandlerList();
52 handlers.setHandlers(new Handler[] { contextHandRes, contextHandler, new DefaultHandler()});
53 jettyServer.setHandler(handlers);
54
hebastae2bd6e42020-03-03 19:07:20 +010055 ServletHolder servletHolder = contextHandler.addServlet(
56 org.glassfish.jersey.servlet.ServletContainer.class, "/*");
57 servletHolder.setInitOrder(0);
58
59 // Tells the Jersey Servlet which REST service/class to load.
60 servletHolder.setInitParameter(
61 "jersey.config.server.provider.classnames",
62 IdsExportService.class.getCanonicalName());
63
64 try {
65 jettyServer.start();
hebasta68a5bdd2020-03-07 13:44:17 +010066 System.out.println("PluginServer available under: http://" + host+ ":" + portStr);
hebastae2bd6e42020-03-03 19:07:20 +010067 jettyServer.join();
68 }
69 finally {
70 jettyServer.destroy();
71 }
72 }
73}