📄 jettycontainer.java
字号:
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 + -