Ajuda no seam [Could not instantiate Seam component]

4 respostas
J

Boa tarde pessoal,

Criei um projeto básico usando o Seam. Esse projeto é o que é criado pelo plugin do jboss tools.

Então eu tenho um projeto web, um projeto ejb, um ear e um projeto de teste.

Criei minhas entidades e os meus EJBs no projeto EJB.
E quando criei managedBeans do projeto web, teto acessar os EJBs por eles, mas o erro
"Could not instantiate Seam component" me é apresentado.

Já tentei anotar os EJB com @Name, já tentei inicialos com @In e @EJB e nada funciona…

Alguém pode me dar uma ajuda? Achei aqui no forum algumas pessoas que já passaram por
esses problemas, mas não achei solução…

VLW!

4 Respostas

D

Trabalho com jboss seam, se você puder postar um trecho de código de onde é lançada a exception posso te ajudar…

Até mais…

J

Vamos lá então, logo abaixo eu tenho o meu EJB que é acessado pelo meu componentes Seam mais a baixo:

@Stateful
@Name("usuarioEJB")
public class UsuarioEJB implements IUsuarioLocal {
	
	@PersistenceContext
	private EntityManager entityManager;

	public void inserir(Usuario usuario) {
		entityManager.persist(usuario);
	}

	public Usuario alterar(Usuario usuario) {
		return entityManager.merge(usuario);
	}

	public void excluir(Usuario usuario) {
		entityManager.remove(usuario);
	}

	public Usuario consultarPorId(Usuario usuario) {
		return entityManager.find(Usuario.class, usuario.getId());
	}
	
	@Remove
	@Destroy
	public void cleanUp() { }
}

Esse é o meu componentes Seam que acesso o meu EJB a cima:

@Name("usuarioMB")
@Scope(ScopeType.CONVERSATION)
public class UsuarioMB implements Serializable {
	
	private static final long serialVersionUID = 2162523338663188098L;
	
	private Usuario usuario;
	
	@In
	private UsuarioEJB usuarioEJB;
	
	
	public String inserir() {
		usuarioEJB.inserir(usuario);
		setUsuario(null);
		return null;
	}

	public Usuario alterar() {
		setUsuario(null);
		return null;
	}

	
	/*
	 * Getters e Setters
	 ***/
	@Begin(join=true)
	public Usuario getUsuario() {
		if(this.usuario == null) {
			this.usuario = new Usuario();
		}
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

}

O Erro "Could not instantiate Seam component: usuarioEJB " me é apresentado ao tentar startar o servidor jboss 5.

VLW PELA ATENÇÃO!

D

Então, eu uso de outra forma, outra vez posso te passar.

Mas olhando rapidamente tenta fazer o seguinte:

@In(create = true)  private UsuarioEJB usuarioEJB;

O seam trabalha com um sistema de bijeção, quando voce da somente um @In quer dizer que eu outra classe voce ja criou e fez um @Out, pode ser isto, testa e me diz se funcionou.

Se não vou olhar de novo o código…

Até mais.

J

Carvalho;

Bom o erro que mencionei antes parou de acontecer. Contudo, um outro está ocorrendo: “coud not set fild value by reflection UsuarioEJB”.
Somente fiz a alteraçaõ que pediu.

Já passou por esse?

Criado 29 de maio de 2013
Ultima resposta 29 de mai. de 2013
Respostas 4
Participantes 2