Dúvidas básicas em EJB

4 respostas
lusilva1982

Olá pessoal, estou iniciando em EJb e tenho algumas dúvidas.

Eu entendi que para cada objeto de negócio (EJB) devo ter tipicamente uma lasses e duas interfaces, sendo por exemplo

class AlunoBean implements SessionBean
public class SAlunoBean implements SessionBean {
	private static final long serialVersionUID = -5820999926378497748L;
	private List<Aluno> alunos;

	public void ejbCreate() throws CreateException{
		this.alunos = new ArrayList<Aluno>();
	}
	
	public void addAluno(Aluno a){
		this.alunos.add( a );		
	}
	
	public List<Aluno> find(String name){
		ArrayList<Aluno> encontrados = new ArrayList<Aluno>();
		
		for(Aluno element : alunos){
			if( name.trim().toLowerCase().equals( element.getNome().toLowerCase()) )
				encontrados.add( element );
		}//

		return encontrados;		
	}

	public void ejbActivate() throws EJBException, RemoteException {
	}

	public void ejbPassivate() throws EJBException, RemoteException {
	}

	public void ejbRemove() throws EJBException, RemoteException {
	}

	public void setSessionContext(SessionContext arg0) throws EJBException, RemoteException {
	}

}
interface AlunoHome extends EJBHome
public interface AlunoHome extends EJBHome {

	Aluno create() throws RemoteException, CreateException;
}
interface Aluno extends EJBObject
public interface AlunoEjb extends EJBObject{

	public void addAluno(Aluno a) throws RemoteException;
	public List<Aluno> find(String n) throws RemoteException;

}

Consegui fazer funcionar facilmente meu EJB, criei 2 projetos no eclipse, 1 para a camada de Negócio e outro para Controle e Apresentação.
Mas gosto e preciso entender o conceito, foi o que não me responderam vários tutoriais que li na internet.
Tenho algumas dúvidas:

- Quem implementa as interfaces que eu criei??
- Pq a interface Home precisa ter os metodos criados no SessionBean?
- Qual é a função da interface q extende EJBObject?
- Existe uma ordem para serem chamadas pelo container?

Acho que com essas eu já consiguirei entender melhor, mas ainda tenho outras.

Obrigado.

4 Respostas

R

:arrow: Qual é a função da interface q extende EJBObject?

  • Essa é a sua interface remota, especifica os métodos disponibilizados para o cliente. A interface é necessário porque o cliente utiliza um proxy para invocar o seu EJB, esse proxy é gerado para só saber fazer aquilo que está na sua interface.

:arrow: Pq a interface Home precisa ter os metodos criados no SessionBean?

  • Acho q vc se confundiu, o sessionbean não é ligado à home, a home é utilizada para o cliente obter o bean.

:arrow: Quem implementa as interfaces que eu criei??

  • Os proxys gerados pelo application server.

:arrow: Existe uma ordem para serem chamadas pelo container?

Cada tipo de ejb tem o seu ciclo de vida, dá uma olhada no google por “EJB lifecycle” q vc vai achar bastante coisa.

[]´s

Adriano_Almeida

Só uma curiosidade Luciano, vc decidiu aprender EJB2 por necessidade ou por vontade própria mesmo em detrimento da versão 3?

lusilva1982

pafuncio, são as duas coisas, eu me interessei por estudar a tecnologia, e casualmente estou em projeto que necessita.

Eu já havia trabalhado com EJB, mas manutenções simples em Beans, visando a regra de negócio, nunca foi necessário criar do zero, e atualmente estou fazendo vários testes iniciando mesmo e aproveitando para tirar essas dúvidas básicas.

Pretendo ler um livro, vc me indicaria algum? De preferência em português.

Rafaelprp, muito obrigado! As respostas vão ajudar muito. 8)

Valeu.

Adriano_Almeida

lusilva1982:
pafuncio, são as duas coisas, eu me interessei por estudar a tecnologia, e casualmente estou em projeto que necessita.

Eu já havia trabalhado com EJB, mas manutenções simples em Beans, visando a regra de negócio, nunca foi necessário criar do zero, e atualmente estou fazendo vários testes iniciando mesmo e aproveitando para tirar essas dúvidas básicas.

Pretendo ler um livro, vc me indicaria algum? De preferência em português.

Valeu.

Cara, eu sou um zero à esquerda em EJB2.x … Ultimamente eu estou lendo o EJB3 In Action e estou gostando… é bastante objetivo… tem a versão traduzida dele: http://www.temporeal.com.br/produtos.php?id=171670

Criado 25 de abril de 2008
Ultima resposta 25 de abr. de 2008
Respostas 4
Participantes 3