Engenharia Múltipla Escolha

Uma mudança essencial no modelo de programação Java, com a evolução do JEE, foi o uso de anotações nas diversas tarefas de configuração dos EJBs do aplicativo. Para que serve a anotação Local no ambiente de criação de EJBs?

Uma mudança essencial no modelo de programação Java, com a evolução do JEE, foi o uso de anotações nas diversas tarefas de configuração dos EJBs do aplicativo. Para que serve a anotação Local no ambiente de criação de EJBs?

  1. Definir um Stateless Session Bean.
  2. Definir um contexto de persistência local para o Session Bean.
  3. Definir a interface de acesso às entidades JPA.
  4. Definir um Stateful Session Bean.
  5. Definir a interface de acesso local ao pool de EJBs.

Resolução completa

Explicação passo a passo

E
Alternativa E

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çãoFunção PrincipalAlternativa Errada Associada
@StatelessDefine um Session Bean sem estado mantido entre chamadas.(A) Define um Stateless Session Bean.
@StatefulDefine um Session Bean que mantém estado conversacional.(D) Define um Stateful Session Bean.
@PersistenceContextInjeta um contexto de persistência (JPA).(B) Contexto de persistência.
@EntityMapeia 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.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Engenharia

Ver mais Engenharia resolvidas

Tem outra questão de Engenharia?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.