EJB e MDB - Ajuda com conceitos e estudos

3 respostas
M

Pessoal, comecei a estudar EJB e MDB por conta própria há cerca de 20 dias (lendo os tutoriais da Oracle), mas estou muito confuso tanto em relação a conceitos quanto a execução de exemplos de código. Sou totalmente iniciante neste assunto e gostaria de pedir uma ajuda a vocês porque não consigo avançar. Por enquanto, vou falar mais de MDB.

[A] Usando NetBeans 7.0.1 e GlassFish 3.1, consegui exibir uma String no console da IDE, mas notei que ela é exibida no console do GlassFish. Isso está correto? É ali mesmo que a mensagem é mostrada?

[B] Se estiver correto, quero melhorar o exemplo que fiz e exibir outros tipos de dados (por exemplo, uma lista de números inteiros, nome de pessoas com a idade, etc). O que devo fazer para o MDB exibir essa lista de números no console sendo que o MDB só tem um método onMessage e só recebe objetos do tipo Message? Devo ter uma classe Bean auxiliar? Um outro método no MDB? Serializar a lista?

[C] Como eu passo um parâmetro (no caso, um número inteiro) para um método de um MDB, sendo que seu método onMessage( ) só recebe parâmetros do tipo Message?

[D] A propósito, um MDB pode possuir outros métodos em sua classe, além do onMessage( )?

[E] Um MDB pode chamar métodos de negócio de um EJB quando executar o método onMessage( )?

Nos tópicos do fórum não encontrei nada relacionado especificamente a essas dúvidas, nem nos links que o pessoal divulgou. A propósito, alguns até já estão indisponíveis.

Muito obrigado a todos pela força, abraços.

3 Respostas

A

cara,

da uma lida nessas apostilas abaixo, elas vao te ajudar…

http://www.k19.com.br/cursos/desenvolvimento-web-avancado-com-jsf2-ejb3.1-e-cdi
http://www.k19.com.br/cursos/integracao-de-sistemas-com-webservices-jms-e-ejb

T+

maior_abandonado

marcelogro:
Pessoal, comecei a estudar EJB e MDB por conta própria há cerca de 20 dias (lendo os tutoriais da Oracle), mas estou muito confuso tanto em relação a conceitos quanto a execução de exemplos de código. Sou totalmente iniciante neste assunto e gostaria de pedir uma ajuda a vocês porque não consigo avançar. Por enquanto, vou falar mais de MDB.

[A] Usando NetBeans 7.0.1 e GlassFish 3.1, consegui exibir uma String no console da IDE, mas notei que ela é exibida no console do GlassFish. Isso está correto? É ali mesmo que a mensagem é mostrada?

[B] Se estiver correto, quero melhorar o exemplo que fiz e exibir outros tipos de dados (por exemplo, uma lista de números inteiros, nome de pessoas com a idade, etc). O que devo fazer para o MDB exibir essa lista de números no console sendo que o MDB só tem um método onMessage e só recebe objetos do tipo Message? Devo ter uma classe Bean auxiliar? Um outro método no MDB? Serializar a lista?

[C] Como eu passo um parâmetro (no caso, um número inteiro) para um método de um MDB, sendo que seu método onMessage( ) só recebe parâmetros do tipo Message?

[D] A propósito, um MDB pode possuir outros métodos em sua classe, além do onMessage( )?

[E] Um MDB pode chamar métodos de negócio de um EJB quando executar o método onMessage( )?

Nos tópicos do fórum não encontrei nada relacionado especificamente a essas dúvidas, nem nos links que o pessoal divulgou. A propósito, alguns até já estão indisponíveis.

Muito obrigado a todos pela força, abraços.

[a] se você colocou o System.out dentro do onMessage então é no console do servidor que será exibido (no seu caso o glassfish), se você tiver colocado no cliente então será exibido no console do cliente (que poderia ser uma aplicação web por exemplo que também usaria como console o do glassfish, ou uma aplicação desktop se for este o caso).

[b] este objeto do tipo Message possui classes filhas que você pode utilizar, um exemplo é a ObjectMessage que guarda um objeto serializável e você trafega este objeto dentro da mensagem… isso atenderia para você trafegar objetos complexos (diferentes de String no caso).

[c] respondida acima.

[d] pode, e estes métodos podem ser chamados pelo onMessage… aliás eu acho organizado fazer justamente isso, o onMessage recebe a mensagem, extrai o objeto da mensagem e passa a bola para alguém responsável por trabalhar com este objeto.

[e] pode sim, inclusive esse EJB pode ser injetado via anotação @EJB, desde que esteja no mesmo container obviamente.

M

Consegui fazer o que queria (exibir a lista de números primos), mas agora vou tentar refazer a mesma coisa, porém redirecionando para o console da aplicação e depois abrindo uma página JSF?

Obrigado, alissonvla e maior_abandonado, pela atenção, pelos materiais e pelas respostas, vocês me ajudaram realmente muito!

Criado 26 de abril de 2012
Ultima resposta 4 de mai. de 2012
Respostas 3
Participantes 3