Alternativa E
A questão aborda conceitos fundamentais da plataforma Java EE (antigo J2EE), especificamente sobre Enterprise JavaBeans (EJB) e suas anotações de configuração introduzidas na versão 3.0. O foco é entender a finalidade da anotação @Local.
A anotação @Local é utilizada para definir qual será a Interface de Negócios Local de um componente EJB. Isso permite que clientes dentro do mesmo servidor (mesmo contexto de classe) acessem o bean diretamente, sem a sobrecarga de comunicação remota como RMI.
Análise das Alternativas
Para identificar a resposta correta, devemos comparar cada opção com as funcionalidades reais das anotações de EJB:
- (A) Definir um Stateless Session Bean: Incorreto. Essa função pertence à anotação
@Stateless. - (B) Definir um contexto de persistência local: Incorreto. Contextos de persistência são definidos com
@PersistenceContext (JPA), não relacionados diretamente ao tipo de acesso do EJB. - (C) Definir a interface de acesso às entidades do JPA: Incorreto. Entidades JPA são marcadas com
@Entity. - (D) Definir um Stateful Session Bean: Incorreto. Essa função pertence à anotação
@Stateful. - (E) Definir a interface de acesso local ao pool de EJBs: Correto. Embora a terminologia "pool" seja técnica, a expressão "interface de acesso local" descreve exatamente o propósito da anotação
@Local, que é expor métodos acessíveis via invocação direta (local) em vez de chamada remota.
| Anotação | Finalidade Principal |
|---|
@Stateless | Define um Bean de Sessão Sem Estado |
@Stateful | Define um Bean de Sessão Com Estado |
@Local | Define a Interface de Negócio Local |
@Remote | Define a Interface de Negócio Remota |
A escolha da alternativa E baseia-se no fato de que ela é a única que menciona corretamente a definição de uma interface de acesso local, diferenciando-a da definição do tipo do Bean (Stateless/Stateful) ou de configurações de banco de dados.
Conclusão
A anotação @Local serve para especificar a interface através da qual os componentes EJB podem ser acessados por clientes que residem no mesmo contêiner de aplicação, otimizando o desempenho ao evitar serialização e comunicação de rede desnecessária. Portanto, a alternativa correta é a E.