ваш код запускает свой собственный сервер Jetty через порт 5701, в этом коде нет ничего, что добавляло бы другой сервер Jetty.
Допустим, у вас ServerFoo на порту 5701 уже запущен и работает в собственной JVM.
Теперь у вас есть другое веб-приложение, которое вы хотите добавить к этому экземпляру ServerFoo.
Вы запустите новую JVM, назовем ее DeployerBar, чтобы управлять / управлять экземпляром ServerFoo.
Для этого вам нужно связаться с этим экземпляром ServerFoo и дать ему все необходимое для запуска самого WebApp (все классы, конфигурация и т. Д.) В первую очередь.
Тогда ServerFoo понадобится специальный ClassLoader для загрузки новых классов и конфигурации, которые он только что получил, что даст ему возможность запустить это новое веб-приложение.
Если это именно то, что вы хотите сделать, рассмотрите вместо этого изменение ServerFoo для использования Jetty DeploymentManager для мониторинга общего каталога веб-приложений.
Тогда ваш процесс развертывания просто помещает все файлы (classes / jars / libs / configuration) в этот общий каталог веб-приложений, чтобы ServerFoo DeploymentManager просто взял и начал использовать.
См. LikeJettyXml.java
для примера, как это работает.
DeploymentManager deployer = new DeploymentManager();
DebugListener debug = new DebugListener(System.err,true,true,true);
server.addBean(debug);
deployer.addLifeCycleBinding(new DebugListenerBinding(debug));
deployer.setContexts(contexts);
deployer.setContextAttribute(
"org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",
".*/[^/]*servlet-api-[^/]*\\.jar$|.*/javax.servlet.jsp.jstl-.*\\.jar$|.*/[^/]*taglibs.*\\.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);