Just a note about the new classworlds uberjar functionality. Pete Kazmier has written a maven plugin to make it super-easy, if you're sync'd up to maven HEAD.
classworlds allows the creation of a single standalone jar for your project which may internally include any other additional jars that are required for your application. This allows for easy java -jar myapp.jar type of execution.

Since the adoption of Uber jar, when we start our app from a classworlds-packaged jar (including all 3rd-party jars and our src code jar), the 1st request always takes very long (a few seconds) and often fails w/ timeout.
This only happens when packaging w/ Uber jar. If specifying jars in -classpath there's no such a problem for our app.
I played around Uber jar but don't find options to preload jars or tune its behaviors.
Thanks for comments
Paul