⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jettycontainer.java

📁 国外的一套开源CRM
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                            listener.setBufferSize(value);
                        }
                    }
                    server.addListener(listener);
                }
            } else if ("request-log".equals(props.value)) {
                NCSARequestLog rl = new NCSARequestLog();

                if (props.getProperty("filename") != null) {
                    rl.setFilename(props.getProperty("filename").value);
                }

                if (props.getProperty("append") != null) {
                    rl.setAppend("true".equalsIgnoreCase(props.getProperty("append").value));
                }

                if (props.getProperty("buffered") != null) {
                    rl.setBuffered("true".equalsIgnoreCase(props.getProperty("buffered").value));
                }

                if (props.getProperty("extended") != null) {
                    rl.setExtended("true".equalsIgnoreCase(props.getProperty("extended").value));
                }

                if (props.getProperty("timezone") != null) {
                    rl.setLogTimeZone(props.getProperty("timezone").value);
                }

                if (props.getProperty("date-format") != null) {
                    rl.setLogDateFormat(props.getProperty("date-format").value);
                }

                if (props.getProperty("retain-days") != null) {
                    int days = 90;
                    try {
                        days = Integer.parseInt(props.getProperty("retain-days").value);
                    } catch (NumberFormatException e) {
                        days = 90;
                    }
                    rl.setRetainDays(days);
                }
                server.setRequestLog(rl);
            }
        }
        return server;
    }

    private void setListenerOptions(ThreadedServer listener, ContainerConfig.Container.Property listenerProps) throws ContainerException {
        String systemHost = null;
        if ("default".equals(listenerProps.getProperty("type").value)) {
            systemHost = System.getProperty(listenerProps.name + ".host");
        }
        if (listenerProps.getProperty("host") != null && systemHost == null) {
            try {
                listener.setHost(listenerProps.getProperty("host").value);
            } catch (UnknownHostException e) {
                throw new ContainerException(e);
            }
        } else {
            String host = "0.0.0.0";
            if (systemHost != null) {
                host = systemHost;
            }
            try {
                listener.setHost(host);
            } catch (UnknownHostException e) {
                throw new ContainerException(e);
            }
        }

        String systemPort = null;
        if ("default".equals(listenerProps.getProperty("type").value)) {
            systemPort = System.getProperty(listenerProps.name + ".port");
        }
        if (listenerProps.getProperty("port") != null && systemPort == null) {
            int value = 8080;
            try {
                value = Integer.parseInt(listenerProps.getProperty("port").value);
            } catch (NumberFormatException e) {
                value = 8080;
            }
            if (value == 0) value = 8080;

            listener.setPort(value);
        } else {
            int port = 8080;
            if (systemPort != null) {
                try {
                    port = Integer.parseInt(systemPort);
                } catch (NumberFormatException e) {
                    port = 8080;
                }
            }
            listener.setPort(port);
        }

        if (listenerProps.getProperty("min-threads") != null) {
            int value = 0;
            try {
                value = Integer.parseInt(listenerProps.getProperty("min-threads").value);
            } catch (NumberFormatException e) {
                value = 0;
            }
            if (value > 0) {
                listener.setMinThreads(value);
            }
        }

        if (listenerProps.getProperty("max-threads") != null) {
            int value = 0;
            try {
                value = Integer.parseInt(listenerProps.getProperty("max-threads").value);
            } catch (NumberFormatException e) {
                value = 0;
            }
            if (value > 0) {
                listener.setMaxThreads(value);
            }
        }

        if (listenerProps.getProperty("max-idle-time") != null) {
            int value = 0;
            try {
                value = Integer.parseInt(listenerProps.getProperty("max-idle-time").value);
            } catch (NumberFormatException e) {
                value = 0;
            }
            if (value > 0) {
                listener.setMaxIdleTimeMs(value);
            }
        }

        if (listenerProps.getProperty("linger-time") != null) {
            int value = 0;
            try {
                value = Integer.parseInt(listenerProps.getProperty("linger-time").value);
            } catch (NumberFormatException e) {
                value = 0;
            }
            if (value > 0) {
                listener.setLingerTimeSecs(value);
            }
        }
    }

    /**
     * @see org.ofbiz.base.container.Container#start(java.lang.String)
     */
    public boolean start(String configFile) throws ContainerException {
        // start the server(s)
        this.init(configFile);
        if (servers != null) {
            Iterator i = servers.values().iterator();
            while (i.hasNext()) {
                Server server = (Server) i.next();
                try {
                    server.start();
                } catch (MultiException e) {
                    Debug.logError(e, "Jetty Server Multi-Exception", module);
                    throw new ContainerException(e);
                }
            }
        }
        return true;
    }

    /**
     * @see org.ofbiz.base.container.Container#stop()
     */
    public void stop() throws ContainerException {
        if (servers != null) {
            Iterator i = servers.values().iterator();
            while(i.hasNext()) {
                Server server = (Server) i.next();
                try {
                    server.stop();
                } catch (InterruptedException e) {
                    Debug.logWarning(e, module);
                }
            }
        }
    }
}

// taken from JettyPlus
class Log4jSink implements LogSink {

    private String _options;
    private transient boolean _started;

    public void setOptions(String filename) {
        _options=filename;
    }

    public String getOptions() {
        return _options;
    }

    public void start() throws Exception {
        _started=true;
    }

    public void stop() {
        _started=false;
    }

    public boolean isStarted() {
        return _started;
    }

    public void log(String tag, Object msg, Frame frame, long time) {
        String method = frame.getMethod();
        int lb = method.indexOf('(');
        int ld = (lb > 0) ? method.lastIndexOf('.', lb) : method.lastIndexOf('.');
        if (ld < 0) ld = lb;
        String class_name = (ld > 0) ? method.substring(0,ld) : method;

        Logger log = Logger.getLogger(class_name);

        Priority priority = Priority.INFO;

        if (Log.DEBUG.equals(tag)) {
            priority = Priority.DEBUG;
        } else if (Log.WARN.equals(tag) || Log.ASSERT.equals(tag)) {
            priority = Priority.ERROR;
        } else if (Log.FAIL.equals(tag)) {
            priority = Priority.FATAL;
        }

        if (!log.isEnabledFor(priority)) {
            return;
        }

        log.log(Log4jSink.class.getName(), priority, "" + msg, null);
    }

    public synchronized void log(String s) {
        Logger.getRootLogger().log("jetty.log4jSink", Priority.INFO, s, null);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -