The issue is both that the security concerns were way softer than they are today, and that all your dependencies better be deplorable in a JVM too. Modern ideas of having databases deployed along with the services that need them don't work quite as well as just using OS level virtualization. That said many a crufry old company still deploys hundreds of services to production by loading .war files into a cluster of servers running JBoss or WebLogic.
Remember: Never use the standard library when a forgotten, half-assed CPAN module you can run via Perlito will kind of do.
Sadly, many Java dependencies are quite deplorable.
Edit: If the point is to encapsulate and isolate a Java application as much as possible, I would consider using a unikernel like OSv before considering Docker. This would be more efficient and also more secure.
e.g. https://www.ibm.com/developerworks/library/j-multitenant-jav...
That said, there are practical examples to be found in common servlet containers, with some shared libraries, but individual servlets mostly firewalled from each other.
I wonder what we’ll be championing in another 10 years.