我喜欢将Jetty包含在我的应用程序中,而不是部署到容器中。但是我遇到的一个重大问题是:我如何自动部署?当容器独立运行时,将war文件复制到旧文件就足够了,它就会被拿起来。使用Jetty作为依赖项,我在命令行运行它并在完成后控制它。我无法想到一种简单的自动化方法。有没有比创建脚本来管理作业,停止容器并重新启动,跟踪作业ID等更好的解决方案?
答案 0 :(得分:0)
设置一个适合您需求的DeploymentManager
和AppProvider
。
// === jetty deploy ===
DeploymentManager deployer = new DeploymentManager();
deployer.setContexts(contexts);
deployer.setContextAttribute(
"org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",
".*/servlet-api-[^/]*\\.jar$");
WebAppProvider webapp_provider = new WebAppProvider();
webapp_provider.setMonitoredDirName(jetty_base + "/webapps");
webapp_provider.setDefaultsDescriptor(jetty_home + "/etc/webdefault.xml");
webapp_provider.setScanInterval(1);
webapp_provider.setExtractWars(true);
deployer.addAppProvider(webapp_provider);
server.addBean(deployer);
完整示例可在LikeJettyXml.java