SóProvas


ID
3356860
Banca
CESPE / CEBRASPE
Órgão
TJ-PA
Ano
2020
Provas
Disciplina
Programação
Assuntos

Acerca dos beans de sessão statefull do EJB (Enterprise Java Beans), é correto afirmar que

Alternativas
Comentários
  • Assertiva D

    sessão statefull  = uma instância criada para um usuário não é usada por requisições de usuários diferentes.

  • Vamos ao conceito:

    Beans de Sessão Stateful

    Os beans de sessão do tipo stateful são responsáveis por conter operações que necessitam durar mais do que uma chamada, ou seja, que após a execução do componente o estado dos objetos modificados seja mantido. Em outras palavras, como é chamado no EJB, um bean de sessão com estado.

    A exemplo dos beans de sessão sem estado, o container EJB também controla as instâncias do bean com estado, porém com algumas diferenças. A primeira é que uma vez criada uma instância para um usuário, ela não é em nenhum momento utilizada por outras requisições de usuários diferentes, pelo simples motivo que o estado do componente é mantido, e se outro usuário tivesse acesso às mesmas instâncias, logo teria acesso também aos dados contidos nelas.

    link: https://www.devmedia.com.br/enterprise-javabeans/26402

    Alternativa D.

    Agora que começamos não podemos parar!

  • Inicialmente, vamos retomar o conceito de Enterprise Java Beans (EJBs). De acordo com o tutorial do Java EE 7 da Oracle [1]:

    Um componente Enterprise JavaBeans (EJB), ou enterprise bean, é um corpo de código que possui campos e métodos para implementar módulos da lógica de negócios. Você pode pensar em um enterprise bean como um bloco de construção que pode ser usado sozinho ou com outros enterprise beans para executar a lógica de negócios no servidor Java EE. Eles podem ser "session beans" ou "message-driven beans"

    Conforme manual da Oracle[1] e artigo do DevMedia[2], os Session Beans podem ser de três tipos:

    Stateful: Esse tipo de Session Bean mantém o estado de seus atributos, não é compartilhado e pode ter apenas um cliente. Ou seja, enquanto a sessão do cliente estiver ativa, os valores das variáveis de instância desse tipo de objeto serão preservados.

    Stateless
    : Não mantém o estado de seus atributos, ou seja, não há garantia que os valores das variáveis de instância desse tipo de objeto sejam preservados entre as chamadas de seus métodos. 
    De acordo com DEVMEDIA (2012): "Os beans de sessão do tipo stateless são responsáveis por conter operações que não necessitam durar mais do que uma chamada. Eles devem ser invocados, processados e, se necessário, retornar o resultado para o chamador. Em outras palavras, como chamado no EJB, um bean de sessão sem estado" (grifou-se)

    Singleleton
    : É instanciado apenas uma vez por aplicação e mantido durante todo ciclo de vida dela. Esse tipo de Session Bean é projetado para circunstâncias nas quais uma única instância do bean é compartilhada e acessada simultaneamente pelos clientes.

    Dito isso, a  questão pede a alternativa que contenha uma afirmação verdadeira sobre beans de sessão statefull. Vamos então à análise:

    A) INCORRETA
    . Essa descrição é do Session Bean tipo Singleton.

    B) INCORRETA. Essa descrição é do Session Bean tipo Stateless. O Contêiner EJB normalmente cria e mantém um conjunto de beans de sessão sem estado, iniciando o ciclo de vida do bean de sessão sem estado e usando-os para processar solicitações de clientes;

    C) INCORRETA. Essa descrição é do Session Bean tipo Stateless;

    D) CORRETA. Conforme visto acima, um Session Bean do tipo Stateful não é compartilhado e pode ter apenas um cliente;

    E) INCORRETA. Essa descrição é do Session Bean tipo Singleton. Como existe apenas uma instância durante o ciclo de vida da aplicação, qualquer alteração em seu estado será visível para todos os usuários.

    Gabarito do professor: Letra D.

    REFERÊNCIAS: [1] Oracle. JAVA EE 7. Disponível em: site do tutorial JAVA EE 7 da Oracle. Acesso em: 7/7/2020; [2] DEVMEDIA. Enterprise JavaBeans. 2012. Disponível em: site do DEVMEDIA - artigo Enterprise Java Beans. Acesso em: 7/7/2020.
  • Gabarito D

    (A) eles são criados apenas uma vez e disponibilizados para todos os usuários do contêiner EJB. (Beans de Sessão Singleton)

    (B) eles devem ser invocados, processados e, se for o caso, retornar o resultado para o chamador. (Beans de Sessão Stateless)

    (C) eles contêm operações que não precisam durar mais do que uma chamada. (Beans de Sessão Stateless)

    (D) uma instância criada para um usuário não é usada por requisições de usuários diferentes. (Beans de Sessão Statefull)

    (E) as alterações feitas em um componente tornam-se visíveis a todos os outros usuários. (Beans de Sessão Singleton)

    https://www.devmedia.com.br/enterprise-javabeans/26402

  • uma instância criada para um usuário não é usada por requisições de usuários diferentes.

  • Ótimo comentário do professor.