Um contêiner Java EE pode oferecer serviços como gestão de memória, ciclo de vida e estado de objetos, conexões, transações, serviços de nomes, segurança, tolerância a falhas, integração, clustering, alta disponibilidade, confiabilidade e web services. Um servidor Java EE completo disponibiliza dois tipos principais de contêiner, que são: