Я бы не советовал связываться ни с каким jsf/adf фреймворками, они глючные и почти не кастомизуемые. Дальше в зависимости от задач, если вам нужен красивый и функциональный клиент то пользоваться ZK я бы тоже не советовал (он имеет достаточно прикольный client-server binding который к сожалению не обделен багами).
т.о. для фронтэнда я бы посоветовал jsp, SpringMVC + возможно angularjs (зависит от задач).
Для бекэнда - Spring, Hibernate или SpringDAO, Jax-WS если вам нужна скорость и нормальная работа с дженериками я бы не использовал, советовал бы заморочится с трифтом тогда (
http://thrift.apache.org/). Из application server-а скорее всего вам ничего ненужно, достаточно будет Tomcat-а (сервлет контейнер). Кеширование - да, EhCache.
Успехов!