Last year I worked with a collegue on a software project. As I architect I set up a backend. As frontend technology we used flex. As backend technology, we used Spring, JPA (via Toplink) and Java. Communication between frontend and backend was accomplished by using Blazeds.
The stack was very productive, and after a short learning curve, we could implement software quickly.
A nice and informative article on how to use these technologies is recently written by the collegue I worked with. The article is in Dutch, for those that can read that language see: Stack Attack: Flex, Spring, JPA en Toplink