com.caucho.server.resin,Resin
/**
* The main start of the web server.
*
* <pre>
* -conf resin.conf : alternate configuration file
* -port port : set the server's portt
* <pre>
*/
public static void main(String []argv)
{
try {
EnvironmentClassLoader.initializeEnvironment();
validateEnvironment();
final Resin resin = new Resin();
resin.parseCommandLine(argv);
resin.initMain();
Server server = resin.getServer();
DestroyThread destroyThread = new DestroyThread(resin);
destroyThread.start();
resin.waitForExit();
destroyThread.shutdown();
long stopTime = System.currentTimeMillis();
long endTime = stopTime +15000L;
if (server != null)
endTime = stopTime + server.getShutdownWaitMax() ;
while (System.currentTimeMillis() < endTime && ! resin.isClosed()) {
try {
Thread.interrupted();
Thread.sleep(100);
} catch (Throwable e) {
}
}
if (! resin.isClosed())
Runtime.getRuntime().halt(1);
System.exit(0);
} catch (Throwable e) {
boolean isCompile = false;
Throwable cause;
for (cause = e;
cause != null && cause.getCause() != null;
cause = cause.getCause()) {
if (cause instanceof CompileException) {
isCompile = true;
break;
}
}
if (cause instanceof BindException) {
System.err.println(e.getMessage());
log().severe(e.toString());
log().log(Level.FINE, e.toString(), e);
System.exit(67);
}
else if (e instanceof CompileException) {
System.err.println(e.getMessage());
log().log(Level.CONFIG, e.toString(), e);
}
else {
e.printStackTrace(System.err);
}
} finally {
System.exit(1);
}
}