Exercicio apostila FJ31 - Implementação de um listener

0 respostas
R

Pessoal estou tentando implementar um Listener para meu EntityBean Livro
e esta me aparecendo o seguinte erro no console;

WARN: Unsupported message received with header 0xffffffff
Exception in thread "main" java.lang.IllegalStateException: No EJB receiver available for handling [appName:fj31-loja-ear,modulename:fj31-loja-ejb3,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@1e22ab57
	at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:584)
	at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:119)
	at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
	at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
	at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
	at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
	at $Proxy0.salva(Unknown Source)
	at br.com.caelum.loja.client.gerenciado.ClienteGerenciador.main(ClienteGerenciador.java:29)
eis meu entity bean:
package br.com.caelum.loja.entity;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import br.com.caelum.loja.listeners.LivroListener;

@Entity
@EntityListeners(LivroListener.class)
public class Livro implements Serializable {
	
	/**
	 * representação da entidade livro do banco de dados
	 */
	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Long id;
	private  String nome;
	private double preco;
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public static long getSerialversionuid() {
		return serialVersionUID;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getNome() {
		return nome;
	}
	public void setPreco(double preco) {
		this.preco = preco;
	}
	public double getPreco() {
		return preco;
	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "Livro "+getNome();
	}
}
meu Listener:
package br.com.caelum.loja.listeners;

import java.util.Date;

import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

public class LivroListener {
	
	@Temporal(TemporalType.TIMESTAMP)
	private Date dataAlteracao;
	
	public Date getDataAlteracao() {
		return dataAlteracao;
	}
	public void setDataAlteracao(Date dataAlteracao) {
		this.dataAlteracao = dataAlteracao;
	}


	@PreUpdate
	public void preAltera(){
		System.out.println("Atualizando a data do Livro");
		this.setDataAlteracao(new Date());
	}	

	@PrePersist
	public void prePersist(Object obj){
		System.out.println("Avisa o bibliotecário que existe um novo Livro "+obj);
	}

}
e classe que faz a invocacao ( meu cliente)
package br.com.caelum.loja.client.gerenciado;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import br.com.caelum.loja.entity.Livro;
import br.com.caelum.loja.session.GerenciadorLoja;

public class ClienteGerenciador {

	/**
	 * @param args
	 * @throws NamingException 
	 */
	public static void main(String[] args) throws NamingException {
		InitialContext ic = new InitialContext();
		
		GerenciadorLoja gerenciador = (GerenciadorLoja) ic.lookup
				("ejb:fj31-loja-ear/fj31-loja-ejb3/GerenciadorLojaBean!br.com.caelum.loja.session.GerenciadorLoja"); 
//		GerenciadorLoja gerenciador = (GerenciadorLoja)ctx.lookup("fj31-loja-ear/GerenciadorLojaBean/remote");
		
		Livro livro;
		for (int i = 0; i < 3; i++) {
			livro = new Livro();
			livro.setNome("Livros educacionais de GEOGRAFIA ed: "+i);
			
			double valor = 5.00+i*2;
			livro.setPreco(valor);
			gerenciador.salva(livro);
			System.out.println("Livro salvo na base de dados. Nome:"+livro.getNome());
		}
		
		

	}

}

alguem poderia me ajudar me mostrando onde que estou errando?
Obrigado pessoal

Criado 1 de fevereiro de 2013
Respostas 0
Participantes 1