Guest User

WebServer.java

a guest
Jun 26th, 2014
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.36 KB | None | 0 0
  1. package com.l2jfrozen.gameserver.powerpak.Servers;
  2.  
  3. import java.net.InetAddress;
  4. import java.net.InetSocketAddress;
  5. import java.util.logging.Level;
  6. import java.util.logging.Logger;
  7.  
  8. import com.l2jfrozen.Config;
  9. import com.l2jfrozen.L2Properties;
  10. import com.l2jfrozen.gameserver.powerpak.PowerPakConfig;
  11. import com.sun.net.httpserver.HttpHandler;
  12. import com.sun.net.httpserver.HttpServer;
  13.  
  14. public class WebServer extends Thread
  15. {
  16.     private static WebServer _instance;
  17.  
  18.     public static WebServer getInstance()
  19.     {
  20.         if(_instance == null)
  21.             _instance = new WebServer();
  22.         return _instance;
  23.     }
  24.  
  25.     private HttpServer _server;
  26.     protected static final Logger _log = Logger.getLogger(WebServer.class.getName());
  27.  
  28.     private WebServer()
  29.     {
  30.         if(PowerPakConfig.WEBSERVER_ENABLED)
  31.             try
  32.             {
  33.                 int handlers = 0;
  34.                 _server = HttpServer.create(new InetSocketAddress(InetAddress.getByName(PowerPakConfig.WEBSERVER_HOST), PowerPakConfig.WEBSERVER_PORT), 10);
  35.                 L2Properties p = new L2Properties("./config/powerpak/websevices.properties");
  36.                 for(Object s : p.keySet())
  37.                 {
  38.                     String contextHandlerName = p.getProperty(s.toString());
  39.                     try
  40.                     {
  41.                         Class<?> contextHandler = Class.forName(contextHandlerName);
  42.                         if(contextHandler != null && HttpHandler.class.isAssignableFrom(contextHandler))
  43.                         {
  44.                             _server.createContext(s.toString(), (HttpHandler) contextHandler.newInstance());
  45.                             handlers++;
  46.                         }
  47.                     }
  48.                     catch(Exception e)
  49.                     {
  50.                         if(Config.ENABLE_ALL_EXCEPTIONS)
  51.                             e.printStackTrace();
  52.  
  53.                         _log.log(Level.WARNING, "WebServer: Error while creating handler " + contextHandlerName + " for '" + s.toString() + "': " + e);
  54.                         continue;
  55.                     }
  56.  
  57.                 }
  58.                 if(handlers > 0)
  59.                 {
  60.                     _server.start();
  61.                     Runtime.getRuntime().addShutdownHook(this);
  62.                     _log.info("WebServer: Listen at " + PowerPakConfig.WEBSERVER_HOST + ":" + PowerPakConfig.WEBSERVER_PORT);
  63.                     _log.info("WebServer: " + handlers + " context handler(s) registred");
  64.                 }
  65.             }
  66.             catch(Exception e)
  67.             {
  68.                 if(Config.ENABLE_ALL_EXCEPTIONS)
  69.                     e.printStackTrace();
  70.  
  71.                 _log.log(Level.WARNING, "WebServer: Error " + e + " while staring");
  72.                 _server = null;
  73.             }
  74.     }
  75.  
  76.     @Override
  77.     public void run()
  78.     {
  79.         if(_server != null)
  80.         {
  81.             System.out.println("WebServer: stopped");
  82.             _server.stop(0);
  83.             _server = null;
  84.         }
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment