My best guess is that the java one is slow due to ebean (I've always seen huge performance improvements from switching to raw jdbc). The scala one I have no clue.
More likely because the version uses only as many threads as the cpu has cores. Whereas the servlet version for example has 128 thanks to the default resin configuration.
https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast...
Compare this to the Java Servlet, which just serializes directly in the Servlet callback.
https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast...
The former seems like overkill.