Fernando estava configurando um Web Server Tomcat para que pudesse hospedar o novo sistema de controle de estoque na rede interna da empresa. Porém, descobriu que o sistema utiliza componentes MDB, e foi obrigado a trocar o Tomcat pelo Application Server JBoss, porque o Tomcat:
- A)restringe a gerência de sessões de usuário ao timeout de dez minutos;
Errada: o Tomcat não fixa timeout de sessão em dez minutos; isso é configurável e não define sua natureza.
- B)transforma as páginas JSP em Servlets;
Errada: transformar JSP em Servlets é justamente uma função esperada do contêiner web, não uma limitação.
- C)permite apenas o protocolo HTTP, sem suporte ao HTTPS;
Errada: o Tomcat pode trabalhar com HTTPS quando configurado com SSL/TLS, então não fica restrito a HTTP.
- D)oferece apenas o contêiner de Servlets, sem apresentar um contêiner para componentes EJB;
Certa: o Tomcat é basicamente um contêiner de Servlets/JSP e não oferece, por padrão, contêiner EJB para MDB.
- E)inviabiliza o uso de JMS (Java Message Service).
Errada: JMS pode ser usado em soluções Java, mas o problema aqui não é JMS em si, e sim a ausência do suporte a EJB/MDB no Tomcat.
Gabarito: D
Aqui a ideia central é simples: nem todo servidor Java faz tudo. O Tomcat é um Web Server/Application Server mais enxuto, focado no ambiente web, isto é, no contêiner de Servlets e JSP. Ele resolve a parte de páginas dinâmicas e requisições HTTP, mas não traz, por padrão, a estrutura completa de uma plataforma Java EE/Jakarta EE. Em prova, isso costuma virar a clássica comparação: Tomcat é mais “leve”; JBoss é mais “completo”. Quando o enunciado fala em componentes MDB, ele está falando de Message-Driven Beans, que fazem parte do universo EJB. EJB não roda em qualquer servidor web simples, porque depende de um contêiner próprio para beans empresariais. Por isso o JBoss foi necessário: ele oferece o contêiner de EJB, além de outros serviços de aplicação, enquanto o Tomcat fica só na camada web. Então o gabarito é a letra D: o Tomcat oferece apenas o contêiner de Servlets, sem apresentar um contêiner para componentes EJB. Isso não significa que ele seja ruim, só que ele tem escopo menor. Em concursos, a banca adora essa diferença entre “Web Server/Servlet Container” e “Application Server completo”. Como referência doutrinária, essa distinção é clássica na arquitetura Java EE/Jakarta EE: Servlets e JSP ficam no contêiner web, enquanto EJB, MDB e serviços correlatos exigem suporte de servidor de aplicações. É o tipo de detalhe que cai muito porque parece pequeno, mas muda totalmente a resposta.