2013-07-23 3 views

답변

1

사용하고

jetty.xml의 부두 - plus.xml이 가능하다 Jetty 7, Jetty 8 및 Jetty 9가 있습니다. 업그레이드 할 수 있습니까?

참고 : 부두 6 다시 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)); 
    } 
} 
에 life'd의 끝이었다