One of the best decisions I made was to transition from J2EE server code (Spring+ hibernate + Jsf/(some)SpringMVC ) to Clojure ring + Moustache. The code is smaller, simple to understand and concurrency is a breeze. The only downside is you can't write a SOAP server as XML namespace support is missing in its xml library.
I've used it a little and haven't had any problems. You can run it on Jetty, so performance is excellent, and you get access to the whole Java ecosystem. Things like Core.async, Pulsar (modeled after Go's coroutines/Erlang's actors) and Software Transactional Memory make parallel/concurrent programming a breeze. The biggest "issue" some people have with it is that it's generally dynamically typed, but if you don't mind that then it's at least as effective as other server side dynamic languages.
edit : typo