I can really recommend
Grails. I'm no Java expert, but I've been working occasionally with Java for several years, and I've always found
J2EE a real pain (too much XML Configuration Hell for one thing). Grails takes the pain away and it's great.
Like Ruby, it's based on "convention over configuration" i.e. if you work with the conventions of Grails (naming, file locations, design
patterns etc), then it is incredibly easy to get a real 3-tier J2EE database app running and deployed onto e.g.
Tomcat.
But one big advantage over Ruby/Rails is the easy and complete integration with Java out of the box. Grails includes masses of standard enterprise Java libraries like Spring and Hibernate (partly because it's actually built on top of those libraries). But it's also easy to mix in your own Java code and other libraries as you need them. It is also very flexible e.g. you can opt out of the conventions if you want, set up your own URL mappings (for REST), use different object-relational mapping tools, map your objects to legacy DB tables, or whatever you want. So you get all the power of enterprise Java, plus great flexibility, but none of the pain.
If anybody wants to try it out, I suggest downloading the free PDF book
Getting Started With Grails by Jason Rudolph, which will do exactly what it says: you'll have your first Grails app running in minutes, seriously. There's also a
video presentation by the same guy to give you a quick intro to what Grails is about.
Then you could progress to the
Mastering Grails series by Scott Davis on IBM Developer Works, which includes some extra ideas like Google Maps mash-ups, for example, as well as looking at Grails support for things like
unit testing (
JUnit is built into Grails of course).
Then if you want to get serious about Grails, get The Definitive Guide to Grails (2nd Edition) by Graeme Rocher and Jeff Brown.
And remember, Grails actually makes enterprise Java fun, so give it a try!