公告
财富商城
积分规则
提问
发文
2019-09-14 06:47发布
男人必须洒脱
In other words, what is this equivalent to:
java -jar start.jar etc/jetty.xml jetty-plus.xml
I'm using Jetty 6.
This is possible with Jetty 7, Jetty 8, and Jetty 9. Can you upgrade?
Note: Jetty 6 was end of life'd back in 2010.
package jetty; import java.io.File; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.xml.XmlConfiguration; public class EmbeddedViaXml { public static void main(String[] args) { try { // The configuration files List<URL> configs = new ArrayList<>(); configs.add(new File("jetty.xml").toURI().toURL()); configs.add(new File("jetty-plus.xml").toURI().toURL()); // The properties Map<String, String> props = new HashMap<String, String>(); props.put("jetty.home",new File(System.getProperty("user.dir")).getCanonicalPath()); Server server = load(configs,props); server.start(); server.join(); } catch (Throwable t) { t.printStackTrace(); } } public static Server load(List<URL> xmlConfigUrls, Map<String, String> props) throws Exception { XmlConfiguration last = null; // Hold list of configured objects Object[] obj = new Object[xmlConfigUrls.size()]; // Configure everything for (int i = 0; i < xmlConfigUrls.size(); i++) { URL configURL = xmlConfigUrls.get(i); XmlConfiguration configuration = new XmlConfiguration(configURL); if (last != null) { // Let configuration know about prior configured objects configuration.getIdMap().putAll(last.getIdMap()); } configuration.getProperties().putAll(props); obj[i] = configuration.configure(); last = configuration; } // Find Server Instance. Server foundServer = null; int serverCount = 0; for (int i = 0; i < xmlConfigUrls.size(); i++) { if (obj[i] instanceof Server) { if (obj[i].equals(foundServer)) { // Identical server instance found continue; // Skip } foundServer = (Server)obj[i]; serverCount++; } } if (serverCount <= 0) { throw new IllegalStateException("Load failed to configure a " + Server.class.getName()); } if (serverCount == 1) { return foundServer; } throw new IllegalStateException(String.format("Configured %d Servers, expected 1",serverCount)); } }
最多设置5个标签!
This is possible with Jetty 7, Jetty 8, and Jetty 9. Can you upgrade?
Note: Jetty 6 was end of life'd back in 2010.