У меня есть приложение Spring, и я использовал Tomcat для его разработки и запуска на сервере. Меня очень разочаровал процесс разработки deploy->undeploy-->deploy снова-->.., поэтому я решил переключиться на встроенный Jetty. Итак, теперь у меня есть только один класс Java, который отвечает за запуск моего сервера:
public class MainServer {
private Server start() throws Exception {
Server jetty = new Server();
String[] configFiles = { "WebContent/WEB-INF/jetty.xml" };
for (String configFile : configFiles) {
XmlConfiguration configuration = new XmlConfiguration(new File(configFile).toURI().toURL());
configuration.configure(jetty);
}
WebAppContext appContext = new WebAppContext();
File warPath = new File("WebContent");
appContext.setWar(warPath.getAbsolutePath());
appContext.setClassLoader(Thread.currentThread().getContextClassLoader());
appContext.setContextPath("/4d");
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { appContext, new DefaultHandler() });
jetty.setHandler(handlers);
jetty.start();
jetty.join();
return jetty;
}
public static void main(String[] args) {
try {
new MainServer().start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Это идеально подходит для разработки, поскольку позволяет выполнять горячую замену и кажется более быстрым. Однако я также хотел бы позже развернуть этот параметр на своем сервере. Как лучше всего запустить этот сервер и запустить его в фоновом режиме (например, Tomcat startup.sh)? Как мне назвать этот класс MainServer?