On Thu, 10 Jun 2010 19:54:51 -0700, Mike Schilling wrote:
"ClassCastException" <zjkg3d9gj56@gmail.invalid> wrote in message
news:hus76c$g1n$2@news.eternal-september.org...
I think the usual situation will be that a) you don't catch Error and
b) servlet containers etc. run servlets etc. in separate threads and
deal with it gracefully if any of these threads abends. If you have
multiple threads, provide some interrupt mechanism that can be
triggered.
A servlet container will handle each request in a separate thread, and
direct that thread to the servlet that should handle it. One request's
thread erroring horribly doesn't prevent further requests from being
processed by that same servlet. Preventing any further processing would
require some management operation that disables the servlet, or more
likely its containing web application.
Euuww. That means you need to tell the servlet container to unregister
you, or else set a public static mutable error flag that makes all
subsequent instances prompt-fail, or something. Global variables. Ick!
Does the servlet<->container API/protocol/whatever not include an
explicit way for a servlet to signal a fatal error to the container? Let
alone to perform just-once initialization, prior to handling requests,
which can fail?
Yeah, that you can do. There's an init() method, and if it throws an
exception the servlet is never enabled (at least, in containers I know of.
servlet class. Multiple threads -- single instance.