Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.l2jfrozen.gameserver.powerpak.Servers;
- import java.net.InetAddress;
- import java.net.InetSocketAddress;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import com.l2jfrozen.Config;
- import com.l2jfrozen.L2Properties;
- import com.l2jfrozen.gameserver.powerpak.PowerPakConfig;
- import com.sun.net.httpserver.HttpHandler;
- import com.sun.net.httpserver.HttpServer;
- public class WebServer extends Thread
- {
- private static WebServer _instance;
- public static WebServer getInstance()
- {
- if(_instance == null)
- _instance = new WebServer();
- return _instance;
- }
- private HttpServer _server;
- protected static final Logger _log = Logger.getLogger(WebServer.class.getName());
- private WebServer()
- {
- if(PowerPakConfig.WEBSERVER_ENABLED)
- try
- {
- int handlers = 0;
- _server = HttpServer.create(new InetSocketAddress(InetAddress.getByName(PowerPakConfig.WEBSERVER_HOST), PowerPakConfig.WEBSERVER_PORT), 10);
- L2Properties p = new L2Properties("./config/powerpak/websevices.properties");
- for(Object s : p.keySet())
- {
- String contextHandlerName = p.getProperty(s.toString());
- try
- {
- Class<?> contextHandler = Class.forName(contextHandlerName);
- if(contextHandler != null && HttpHandler.class.isAssignableFrom(contextHandler))
- {
- _server.createContext(s.toString(), (HttpHandler) contextHandler.newInstance());
- handlers++;
- }
- }
- catch(Exception e)
- {
- if(Config.ENABLE_ALL_EXCEPTIONS)
- e.printStackTrace();
- _log.log(Level.WARNING, "WebServer: Error while creating handler " + contextHandlerName + " for '" + s.toString() + "': " + e);
- continue;
- }
- }
- if(handlers > 0)
- {
- _server.start();
- Runtime.getRuntime().addShutdownHook(this);
- _log.info("WebServer: Listen at " + PowerPakConfig.WEBSERVER_HOST + ":" + PowerPakConfig.WEBSERVER_PORT);
- _log.info("WebServer: " + handlers + " context handler(s) registred");
- }
- }
- catch(Exception e)
- {
- if(Config.ENABLE_ALL_EXCEPTIONS)
- e.printStackTrace();
- _log.log(Level.WARNING, "WebServer: Error " + e + " while staring");
- _server = null;
- }
- }
- @Override
- public void run()
- {
- if(_server != null)
- {
- System.out.println("WebServer: stopped");
- _server.stop(0);
- _server = null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment