У меня есть приложение Spring, и я использовал Tomcat для его разработки и запуска на сервере.Я был довольно разочарован процессом развертывания -> отменить развертывание -> развернуть снова -> .., поэтому я решил переключиться на встроенную 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?