Lista de Exercícios de Projeto e Implementação Orientado a Objeto – Lista 8
Questão 1
(TCE-PR/2011) Sobre o Java EE 6 é correto afirmar:
a) Um message-driven bean encapsula a lógica de negócios e deve ser invocado por meio de programação por um cliente local ou remoto. Os messagedriven beans são persistentes.
b) Um session bean encapsula a lógica de apresentação e deve ser invocado por meio de programação apenas por cliente remoto. Para acessar um aplicativo que é implantado no servidor, o cliente invoca métodos do session bean
c) Os serviços CDI permitem aos componentes do Java EE, como beans de sessão EJB e beans gerenciados do JavaServer Faces (JSF), serem injetados e interagir de maneira acoplada e flexível iniciando e observando eventos.
d) Message-driven beans permitem que aplicações Java EE possam processar mensagens de forma síncrona. São persistentes e gerenciam a troca de mensagens com o banco de dados.
e) Os Singleton Session Beans são utilizados na troca de mensagem JMS de forma assíncrona entre aplicações.
Questão 2
(TRT – 24ª REGIÃO/2010) Em relação ao Enterprise Java Beans, é correto afirmar:
a) No Session Bean, toda vez que um método é invocado, o estado de suas variáveis se mantém apenas durante a invocação desse método.
b) Um Message-Driven Bean é um EJB que possui as interfaces home e remote e apenas um método que recebe qualquer tipo de mensagem.
c) Um Entity Bean é um tipo de EJB que representa dado não persistente armazenado em um banco de dados.
d) Enterprise Java Beans é um componente J2EE do tipo servidor que executa no container do servidor de aplicação.
e) Message-Driven Bean é um EJB statefull.
Questão 3
(TCM/GO/2015) Um Analista de Controle Externo da área de TI do TCM/GO está trabalhando em uma aplicação web utilizando a plataforma Java EE. Ciente que os componentes desta aplicação, para serem processados no servidor de aplicações, terão que ser implantados (deployed) em contêineres apropriados, ele esclareceu à equipe de desenvolvimento que servlets, JavaServer Pages, páginas HTML e Java Beans serão implantados e processados no contêiner A. Além disso, alguns componentes serão implantados e processados no contêiner B, destinado a prover a infraestrutura necessária para a execução de componentes de negócio distribuídos que estendem as funcionalidades de um servidor, permitindo encapsular lógica de negócio e dados específicos de uma aplicação.
Os contêineres A e B são conhecidos, respectivamente, como:
a) local container e remote container.
b) Web container e EJB container.
c) Glassfish container e tomcat container.
d) EJB container e web container.
e) Server container e client container.
Questão 4
(ESAF/2008) A especificação do EJB (Enterprise Java Beans) tem como intenção padronizar o tratamento de problemas comuns em aplicações complexas, tais como persistência, integridade transacional, segurança e controle de concorrência. A respeito do EJB, é correto afirmar que:
a) Os Entity Beans foram substituídos pela “Java Persistence API” na versão EJB 3.0, porém, os Entity Beans de versões 2.x podem continuar utilizando o “Container-Managed Persistence” (CMP) por questões de compatibilidade.
b) Os Session Beans são responsáveis por garantir que o código cliente possua privilégios suficientes de acesso a um EJB.
c) As classes EJB usadas pelas aplicações estão incluídas no pacote javax.ejb.spi.
d) Um container EJB, na sua versão 3.0, possui 3 tipos principais de beans: Application Beans, Session Beans e Server Beans.
e) Os Stateless Session Beans são objetos distribuídos que não possuem estado, permitindo acesso concorrente aos mesmos. Assim, o conteúdo das variáveis de instância é preservado entre as chamadas de métodos.
Questão 5
(DATAPREV/2011) Analise os itens a seguir sobre JEE e EJB.
I. Um servidor J2EE fornece contêineres EJB e Web.
II. O contêiner EJB gerencia a execução de EJBs em aplicações J2EE.
III. O contêiner Web gerencia a execução de páginas JSP e componentes servlet em aplicações J2EE.
IV. Um session bean representa um único cliente dentro do servidor J2EE. Para acessar um aplicativo que é instalado no servidor, o cliente invoca os métodos do session bean.
Está correto o que se afirma em:
a) I, II, III e IV.
b) I e II, apenas.
c) I, III e IV, apenas.
d) I e IV, apenas.
e) III e IV, apenas.
Questão 6
6. (COPEL/2015) Sobre Session Beans, conforme a especificação EJB (Enterprise JavaBeans) 3.1, identifique as afirmativas a seguir como verdadeiras (V ) ou falsas ( F):
( ) Não é possível utilizar Multithreading em EJBs do tipo Singleton.
( ) Stateless Session Beans não armazena nenhuma informação sobre o estado transacional (conversacional), ou seja, nenhuma informação é automaticamente mantida entre as diferentes requisições.
( ) Recomenda-se utilizar um Stateful Session Bean ao construir um carrinho de compras de um e-commerce, embora seja possível usar um Stateless Session Bean, tendo um pouco mais de trabalho.
( ) Existem apenas três tipos de Session Beans: Stateful, Stateless e Singleton.
Assinale a alternativa que apresenta a sequência correta, de cima para baixo.
a) F – V – F – F.
b) F – F – V – V.
c) V – V – V – F.
d) F – V – V – V.
e) V – F – F – V.
Questão 7
(COPEL/2010) A arquitetura JEE permite que objetos remotos sejam executados através da especificação EJB (Enterprise Java Beans). Sobre EJB, analise as afirmativas abaixo:
I. Message-Driven Beans permitem que métodos de objetos remotos sejam executados a partir de mensagens síncronas.
II. Stateful Session Beans permitem que um estado transacional entre o cliente e o bean seja mantido.
III. A anotação @Remove para um método de um Stateful Session Bean indica ao container que a transação de um session bean com o cliente deverá ser finalizada quando esse método for executado.
IV. Stateless Session Beans permitem que métodos de objetos remotos sem estado sejam executados.
V. O termo Passivation usado na especificação significa persistir fisicamente uma instância de um session bean para utilizá-lo posteriormente (Activation). Essa técnica tem o objetivo de economizar memória do container.
Com base nas afirmativas acima, assinale a alternativa CORRETA:
a) Apenas as afirmativas II, III, IV e V estão corretas.
b) Apenas as afirmativas II, III e IV estão corretas.
c) Apenas as afirmativas I, II, III e IV estão corretas.
d) Apenas as afirmativas III, IV e V estão corretas.
e) Todas as afirmativas estão corretas.
Questão 8
(BNDES/2013) Cada tipo de enterprise bean passa por diferentes fases durante seu ciclo de vida. Um desses tipos possui um estado denominado Passivo. Quando um bean entra nesse estado, o container EJB o desloca da memória principal para a memória secundária.
Qual tipo de bean se comporta dessa maneira?
a) Stateless Session Bean
b) Stateful Session Bean
c) Web Service Bean
d) Singleton Session Bean
e) Message-Driven Bean
Questão 9
(UFPA/2011) Segundo o padrão JEE, é INCORRETO afirmar:
a) Os Session Beans podem ser de 2 tipos: Stateless e Statefull.
b) Os Entity Beans representam entidades persistentes que podem ser salvas em uma SGBD relacional.
c) A API JPA pode ser utilizada para envio de mensagens automáticas por um Message Driven Bean.
d) Aplicações EJB só executam em um container que dê suporte para as especificações JEE.
e) Os Stateless Session Beans não guardam os dados de sessão dos serviços acessados.
Questão 10
(Petrobras/2011)
No contexto da programação na plataforma Java EE, as tecnologias Servlets, JSP e EJB estão disponíveis. A esse respeito, considere as afirmativas abaixo.
I. EJB fornece ao programador Java EE os seguintes tipos fundamentais: Entity Beans, Session Beans e Message Driven Beans.
II. JPA é parte integrante da especificação EJB e serve para definir as interfaces de acesso local e/ou remoto de um componente EJB.
III. Um servidor de aplicações Java EE oferece vários recursos ao desenvolvedor como pool de conexão, controle de transação, segurança e gerenciamento de recursos.
IV. Uma diferença entre as tecnologias Servlets e JSP é que, ao contrário da segunda, a primeira permite o armazenamento do estado da aplicação em variáveis de sessão.
São corretas APENAS as afirmativas:
a) I e II
b) I e III
c) II e III
d) II e IV
e) III e IV
RESPOSTAS
Questão 1 – C
Justificativa: • Um message-driven bean encapsula a lógica de negócios e deve ser invocado por meio de programação por um cliente local ou remoto. Os message-driven beans são persistentes. -> Errada. Isto é a finalidade do Session Bean.
• Um session bean encapsula a lógica de apresentação e deve ser invocado por meio de programação apenas por cliente remoto. Para acessar um aplicativo que é implantado no servidor, o cliente invoca métodos do session bean. ->
Errada. O Session Bean encapsula a lógica de negócio. Executa uma tarefa para o cliente. Podendo ou não manter o estado durante uma sessão com o cliente.
• Message-driven beans permitem que aplicações Java EE possam processar mensagens de forma síncrona. São persistentes e gerenciam a troca de mensagens com o banco de dados. -> Errada. Utiliza a API JMS (Java Message Service) para processar mensagens assíncronas enviadas a componentes EJBs.
• Os Singleton Session Beans são utilizados na troca de mensagem JMS de forma assíncrona entre aplicações. Errada -> Isto é a finalidade dos Message-driven Beans.
Questão 2 – D
Justificativa: • No Session Bean, toda vez que um método é invocado, o estado de suas variáveis se mantém apenas durante a invocação desse método. -> Errada. Session Bean do tipo Statefull mantém estado de conversão com o cliente.
• Um Message-Driven Bean é um EJB que possui as interfaces home e remote e apenas um método que recebe qualquer tipo de mensagem. -> Errada. O acesso aos Sessions beans são implementados através das interfaces Local e Remote.
• Um Entity Bean é um tipo de EJB que representa dado não persistente armazenado em um banco de dados. -> Errada. Pelo contrário. Representa os objetos Java que são persistentes no banco de dados, ou seja, são as representações OO dos dados da aplicação a serem armazenados no banco de dados.
• Message-Driven Bean é um EJB statefull. -> Errada. O Session Bean é que é Statefull ou StateLess.
Questão 3 – B
Justificativa: O Web Container é responsável por implementar os Servlets e JSPs. Por outro lado, o Container EJB implementa a especificação Enterprise JavaBean(EJB).
Questão 4 – A
Justificativa: • Os Session Beans são responsáveis por garantir que o código cliente possua privilégios suficientes de acesso a um EJB. ->Errada. O Session Bean define uma sessão de um cliente dentro do servidor EJB. Não garante priviégios.
• As classes EJB usadas pelas aplicações estão incluídas no pacote javax.ejb.spi. -> Errada. O pacote javax.ejb.spi define as interfaces que são implementadas pelo container EJB.
• Um container EJB, na sua versão 3.0, possui 3 tipos principais de beans: Application Beans, Session Beans e Server Beans. -> Errado -> São Entity beans, Session Beans e Message Driven Beans.
• Os Stateless Session Beans são objetos distribuídos que não possuem estado, permitindo acesso concorrente aos mesmos. Assim, o conteúdo das variáveis de instância é preservado entre as chamadas de métodos. -> Errada. O estado do cliente não é preservado.
Questão 5 – A
Justificativa: Analisando as opções:
I – Um servidor J2EE pode fornecer contêineres EJB e Web. Exemplo: GlassFish e JBoss.
II e III – O Web Container é responsável por implementar os Servlets e JSPs. Por outro lado, o Container EJB implementa a especificação Enterprise JavaBean(EJB).
IV – O Session Bean define uma sessão de um cliente dentro do servidor EJB.
Questão 6 – D
Justificativa: Todas as alternativas estão corretas, exceto:
• Não é possível utilizar Multithreading em EJBs do tipo Singleton.
Como o Singleton é um session bean, oferece as mesmas garantias que qualquer outro session bean forneceria: esse bean é totalmente thread-safe.
Questão 7 – A
Justificativa: Todas as alternativas estão corretas, exceto:
Message-Driven Beans permitem que métodos de objetos remotos sejam executados a partir de mensagens síncronas.
Um Message-Driven Bean (MDB) é um bean gerenciado por container que é usado para processar mensagens de forma assíncrona.
Questão 8 – B
Justificativa: Passivo é o estado em que o Stateful Session Bean deixa de ser utilizado por um tempo e fica aguardando novas chamadas de cliente quando está passivo.
Questão 9 – C
Justificativa: JPA não esta relacionado a um Message Driven Beans, mas a um Entity Bean que representa um objeto persistente responsável por mapear uma tabela em um banco de dados.
Questão 10 – B
Justificativa: Analisando as opções erradas:
JPA é parte integrante da especificação EJB e serve para definir as interfaces de acesso local e/ou remoto de um componente EJB. -> Errada, pois JPA é uma coleção de classes e métodos voltados para armazenar persistentemente as vastas quantidades de dados em um banco de dados.
Uma diferença entre as tecnologias Servlets e JSP é que, ao contrário da segunda, a primeira permite o armazenamento do estado da aplicação em variáveis de sessão. -> Errada. Ambas permitem.
Material retirado da Web.
Se você tiver alguma dúvida ou correção a fazer, por favor, comente! Obrigado!