Application engines will be serialized and de-serialized as part of
load balancing and fail over. As much as possible, attributes of the application
object should be transient. For example, the instance variable that
holds the ApplicationSpecification
is transient; if
needed (after de-serialization), the engine can locate the specification from
its servlet (the servlet reads the application specification once, when it is first initialized).
This is largely not an issue, since most applications use a provided class,
such as SimpleEngine
. Subclassing
is only necessary when the application needs a different method of instantiating the visit object, or
needs to store additional data (see Operating Stateless).
In some cases, it is convienient to create a subclass to provide common component listener methods.