Alternativa E - Definir a interface de acesso local ao pool de EJBs.
Análise da Questão
A questão aborda conceitos fundamentais do Java EE (Jakarta EE), especificamente sobre Enterprise JavaBeans (EJB) e o uso de anotações (annotations) introduzidas na versão 3.0.
O que é a anotação @Local?
A anotação @Local é utilizada para definir a interface local de um componente EJB (como um Session Bean). Sua função principal é permitir que clientes que estão rodando na mesma Máquina Virtual (JVM) do servidor chamem os métodos do bean diretamente, sem a sobrecarga de serialização de rede (marshalling/unmarshalling) necessária para chamadas remotas.
\text{Chamada Local} \Rightarrow \text{Pass-by-Reference}
Isso contrasta com a interface remota (@Remote), que exige comunicação via protocolo como IIOP/RMI.
Por que a Alternativa E é a correta?
Embora a redação "ao pool de EJBs" seja uma simplificação técnica, a alternativa E é a única que identifica corretamente a finalidade da anotação: definir a interface de acesso local.
- O container EJB gerencia instâncias de beans em pools (no caso de beans stateless) ou mantém instâncias específicas (stateful).
- A anotação
@Local expõe quais métodos podem ser acessados localmente através de qual interface.
Por que as outras alternativas estão incorretas?
Para entender a exclusão, analisamos o propósito das demais anotações:
| Anotação | Função Principal | Alternativa Errada Associada |
|---|
@Stateless | Define um Session Bean sem estado mantido entre chamadas. | (A) Define um Stateless Session Bean. |
@Stateful | Define um Session Bean que mantém estado conversacional. | (D) Define um Stateful Session Bean. |
@PersistenceContext | Injeta um contexto de persistência (JPA). | (B) Contexto de persistência. |
@Entity | Mapeia uma classe Java para tabela de banco de dados. | (C) Interface de acesso a entidades JPA. |
Resumo Técnico
A estrutura típica de um bean usando @Local seria:
@Stateless
@Local(UsuarioService.class) // Define a interface local
public class UsuarioBean implements UsuarioService {
// Métodos do bean...
}
Sem a anotação @Local (ou @LocalBean), o container não saberia qual interface expor para chamadas locais dentro do mesmo servidor. Portanto, a função central é definir essa interface de acesso.