public class WrapperStartStopApp extends java.lang.Object implements WrapperListener, java.lang.Runnable
Using the waitForStartMain property will cause the startup to wait indefinitely. This is fine if the main method will always return within a predefined period of time. But if there is any chance that it could hang, then the maxStartMainWait property may be a better option. It allows the 2 second wait time to be overridden. To wait for up to 5 minutes for the startup main method to complete, set the property to 300 as follows (defaults to 2 seconds): -Dorg.tanukisoftware.wrapper.WrapperStartStopApp.maxStartMainWait=300
By default, the WrapperStartStopApp will tell the Wrapper to exit with an exit code of 1 if any uncaught exceptions are thrown in the configured main method. This is good in most cases, but is a little different than the way Java works on its own. Java will stay up and running if it has launched any other non-daemon threads even if the main method ends because of an uncaught exception. To get this same behavior, it is possible to specify the following system property when launching the JVM (defaults to FALSE): -Dorg.tanukisoftware.wrapper.WrapperStartStopApp.ignoreMainExceptions=TRUE
By default, passthrough parameters are ignored, however it is possible to
specify a different behaviour using the following system property:
Possible values are:
It is possible to extend this class but make absolutely sure that any overridden methods call their super method or the class will fail to function correctly. Most users will have no need to override this class. Remember that if overridden, the main method will also need to be recreated in the child class to make sure that the correct instance is created.
NOTE - The main methods of many applications are designed not to return. In these cases, you must either stick with the default 2 second startup timeout or specify a slightly longer timeout, using the maxStartMainWait property, to simulate the amount of time your application takes to start up.
WARNING - If the waitForStartMain is specified for an application whose start method never returns, the Wrapper will appear at first to be functioning correctly. However the Wrapper will never enter a running state, this means that the Windows Service Manager and several of the Wrapper's error recovery mechanisms will not function correctly.
|Constructor and Description
Helper method to make it easier for user classes extending this class to have their own methods of parsing the command line.
Creates an instance of a WrapperStartStopApp.
|Modifier and Type
|Method and Description
Called whenever the native wrapper code traps a system control signal against the Java process.
Used to Wrapper enable a standard Java application.
Used to launch the application in a separate thread.
Displays application usage
The start method is called when the WrapperManager is signaled by the native wrapper code that it can start its application.
Called when the application is shutting down.
protected WrapperStartStopApp(java.lang.String args)
args - The full list of arguments passed to the JVM.
protected WrapperStartStopApp(java.lang.reflect.Method startMainMethod, java.lang.reflect.Method stopMainMethod, boolean stopWait, java.lang.String stopMainArgs)
startMainMethod - Name of the start method.
stopMainMethod - Name of the stop method.
stopWait - Should the stop process force the JVM to exit, or wait for all threads to die on their own.
stopMainArgs - Arguments for the stop method.
public void run()
run in interface
public java.lang.Integer start(java.lang.String args)
public int stop(int exitCode)
stop in interface
exitCode - The suggested exit code that will be returned to the OS
when the JVM exits. If WrapperManager.stop was called
to stop the JVM then this exit code will reflect that
value. However, if System.exit or Runtime.halt were
used then this exitCode will always be 0. In these
cases, the Wrapper process will be able to detect the
actual JVM exit code and handle it correctly.
public void controlEvent(int event)
protected void showUsage()
public static void main(java.lang.String args)
args - Arguments passed to the application.
Copyright 1999, 2024 Tanuki Software Inc., All Rights Reserved.