我正在使用jetty-server:9.2.11,並且我想在我的嵌入式jetty應用程序中使用webapps目錄進行war部署,就像我們在使用獨立碼頭服務器時一樣。我看了一些資料,發現「像碼頭XML」的程序化配置像下面如何設置jetty.home使用maven的嵌入式碼頭
// Path to as-built jetty-distribution directory
String jettyHomeBuild = "../../jetty-distribution/target/distribution";
// Find jetty home and base directories
String homePath = System.getProperty("jetty.home", jettyHomeBuild);
File homeDir = new File(homePath);
if (!homeDir.exists())
{
throw new FileNotFoundException(homeDir.getAbsolutePath());
}
String basePath = System.getProperty("jetty.base", homeDir + "/demo-base");
File baseDir = new File(basePath);
if(!baseDir.exists())
{
throw new FileNotFoundException(baseDir.getAbsolutePath());
}
// Configure jetty.home and jetty.base system properties
String jetty_home = homeDir.getAbsolutePath();
String jetty_base = baseDir.getAbsolutePath();
System.setProperty("jetty.home", jetty_home);
System.setProperty("jetty.base", jetty_base);
// === jetty-deploy.xml ===
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);
webapp_provider.setConfigurationManager(new PropertiesConfigurationManager());
deployer.addAppProvider(webapp_provider);
server.addBean(deployer);
但在這裏使用「碼頭分佈」,但我只有在我的lib目錄碼頭相關的jar文件被拷貝作爲Maven依賴。我有點困在這裏做我的配置有「jetty.home」爲我的嵌入式碼頭應用程序,因爲我沒有使用任何標準碼頭distribution.I只有單獨的罐子。
thanx的答覆,現在我明白我現在使用DeploymentManager和WebAppContext和我的目的與一個位置部署我的戰爭文件。 – user3014595