Ok, figured out my problem.
It turns out that JspC.initServletContext() accesses System.out, but my
application was setting System.out to NULL after it was done initializing
everything. That's why the initial deploys worked, but one's that happened later
via my homegrown autodeploy would fail.
The reason System.out is being set to NULL is Java Bug #6775145. A bunch of
debug information was being dumped to stdOut by some Java classes on program
exit. This caused our users to freak when they saw it, so we attempted to hide
the output from them to avoid confusion. Our uses may be Phd's but....
I guess I will just hack around this problem until JDK 7 when that Java bug is
claimed to be fixed in.
[Message sent by forum member 'hotngui']
http://forums.java.net/jive/thread.jspa?messageID=475588