Я бы рекомендовал Серверное программирование на Java . Это не книга по Java EE как таковая, но она объясняет , что должен делать сервер на базе Java и как это сделать с хорошим примером кода. Это даст вам основу для понимания того, что Java EE пытается достичь и почему все так, как есть.
В том же духе я бы порекомендовал Expert One-on-One J2EE Development без EJB . Эта книга написана основателем проекта Spring и дает представление о проблемах с Java EE, которые Spring пытается решить. Обратите внимание, что это было написано до того, как Spring был открыт с открытым исходным кодом, так что это больше «книга о том, как серверная среда, которая не Java EE могла бы работать», а не книга «как использовать Spring». Даже если вы используете прямую Java EE, это помогает узнать, с какими проблемами вы могли столкнуться (с J2EE) или каковы были мотивы для Java EE 5 (основанные на философии Spring и Hibernate).
Я бы не рекомендовал актуальные спецификации от Sun. Они плотные, технические и лучше используются в качестве эталона.