Java:
20+ years of engineering, rock solid foundation, huge ecosystem of libraries (there's a well engineered library for everything that's been maintained for many years), the JVM which has an enormous amount of unit tests to make sure things stay stable, decent concurrency models, profiling tools which has stood the test of time, remote debugging, better IDEs (nothing beats IntelliJ ultimate) and the language is well designed with very few quirks whereas JS has many inconsistencies. Depending on your choice of framework / thread-model, you can either be faster than Node or much slower than node.
Using reactive-type thread models is already baked into the latest cutting edge Java frameworks, which outperforms Node by leaps and bounds but the rest will take a few years before they catch up, so Node will continue to benchmark faster than a lot of the frameworks until they all implement either Servlet 3.1+ or roll their own reactive style "threads".
Maintainability I've found is much easier in Java code-bases in general simply due to it being strongly typed.
Maven is awesome!
Node:
If you already know JS, the learning curve for Node is much much much smaller than Java, due to JS not being strongly typed, you can build things much faster, but you're missing out on the ecosystem, the JS ecosystem still has a long way to go before it'll be as mature and reliable as the Java ecosystem.
Node has a reactive style right out of the box which with Java unless you roll your own, use Servlet 3.1 or use VertX, your server will create a thread per process which is less than ideal. Getting push style notifications working via sockJS on Node is a lot easier than in Java, Spring makes it easier, but not everyone is using Spring.
NPM is an awesome package manager!