@Erel, I've split my web server project into separate b4j libraries that I load at runtime (when the server starts). I've done this to make it easier to maintain the code and be able to deploy individual updates to the libraries rather than a 100mb jar file (like I used to).
The jarLoader works as far as I can tell as the library/jar is loaded and I can add the background thread class, handler classes, filters etc.
I suspect the issue may be a limitation of the approach. I dont know the lifecycle of Process Globals. Maybe because there is no process there is no Process Globals for the loaded library or the class path is wrong - but I can call DoUpdate just fine so I dont know.
I've got a work around for now but it would be good to know either if its a bug or limitation of the way Im doing things.