It got huge and bloated.
Some people came along and created some lighter frameworks.
Arguably - Node.js - the javascript container is the real extension of this: it's incredibly light, can handle zillions of connections, you install the packages you need, it's totally open source. And it's in javascript which is uniquely well positioned to do a lot of 'asynchronous' stuff. Passing functions around with callbacks is possibly in Java but it's just bulky. Mostly due to the nature of typing. It's even kind of bulky in Apple Swift, for example.
Java is a great language, that has made some improvements with lambdas etc.
"Container" is the key word here.
J2EE had the notion of an app server hosting your app.
The extreme alternative is to have your app be standalone and "embed" an I/O protocol (HTTP) server. I've had great success with this strategy.
Sadly - the language is really not quite as 'async' as we would like it to be.
Java scales much better than Javascript though, and I mean that in the architectural sense.
Past 50K lines of code - the lack of typing in JS can start to be hell, unless you really know what you are dong.
Of course, you move much more quickly early on in JS and that's actually important: you need to be able to 'iterate and adapt' in todays world. So it's kind of a paradox.
If you're building a bank, you do it deliberately with Java or something like that.
If you're building a nimble startup, you can start with Node and if there are systems that reach a certain degree of maturity and the uses/cases and data model start to settle you can fold over systems to Java or something like that.
A great team can use anything in the end though - that said, it's really hard to find super talented and responsible people across the board.
JVM concurrency is best in class. It's just the Java language itself that moves at a snail's pace.
There's also, in true Java tradition, a number of competing implementations of Promise based frameworks. The one I've used, Ratpack, defines and uses promises almost identically to JavaScript/Node.js.