Erro no vraptor

8 respostas
Naruto

boa noite galera.. to seguindo um tutorial da caelum... cheguei na parte de cadastrar o usuario pelo jsp.. so que esta me dando um erro....

HTTP Status 404 - URL not found, no registered component matches. Cause: org.vraptor.component.ComponentNotFoundException: Component for usuario/usuario not found. For further information, check the log files for the root cause. Enable VRaptor DEBUG/TRACE messages in log4J if necessary.

type Status report

message URL not found, no registered component matches. Cause: org.vraptor.component.ComponentNotFoundException: Component for usuario/usuario not found. For further information, check the log files for the root cause. Enable VRaptor DEBUG/TRACE messages in log4J if necessary.

description The requested resource (URL not found, no registered component matches. Cause: org.vraptor.component.ComponentNotFoundException: Component for usuario/usuario not found. For further information, check the log files for the root cause. Enable VRaptor DEBUG/TRACE messages in log4J if necessary.) is not available.

as classes são:

Dao
package br.com.caelum.lojavirtual.dao;

import java.util.List;

import org.hibernate.Session;

public class Dao<T> {
	
	private Session session;
	private final Class classe;
	
    Dao(Session session, Class classe){
    	this.session = session;
    	this.classe = classe;
    }
    
    public void adiciona(T u){
    	this.session.save(u);
    }
    
    public void remove(T u){
    	this.session.delete(u);
    }
    
    public void atualiza(T u){
    	this.session.merge(u);
    }
    
    public List<T> listaTudo(){
    	return this.session.createCriteria(this.classe).list();
    }
    
    public T procura(Long id){
    	return (T) session.load(this.classe, id);
    }
    
	
	

}
DaoFactory
package br.com.caelum.lojavirtual.dao;

import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.caelum.lojavirtual.modelo.Usuario;
import br.com.caelum.lojavirtual.util.HibernateUtil;

public class DaoFactory {
	
	private final Session session;
	private Transaction transaction;
	
	
	public DaoFactory(){
		session = HibernateUtil.getSession();
	}
	
	public void beginTransaction(){
		this.transaction = this.session.beginTransaction();
	}
	
	public void commit(){
		
		this.transaction.commit();
		this.transaction = null;
	}
	
	public boolean hasTransaction(){
		return this.transaction != null;
	}
	
	public void rollback(){
		this.transaction.rollback();
		this.transaction = null;
	}
	
	public void close(){
		this.session.close();
	}
	
	public Dao<Usuario> getUsuarioDao(){
		return new Dao<Usuario>(this.session, Usuario.class);
	}

}

e a UsuarioLogic

package br.com.caelum.lojavirtual.logic;

import org.vraptor.annotations.Component;

import br.com.caelum.lojavirtual.dao.Dao;
import br.com.caelum.lojavirtual.dao.DaoFactory;
import br.com.caelum.lojavirtual.modelo.Usuario;

@Component
public class UsuarioLogic {
	
	public void adiciona(Usuario usuario){
		
		Dao dao = new DaoFactory().getUsuarioDao();
		
		Usuario u = new Usuario();
		
		u.setLogin(u.getLogin());
		u.setSenha(u.getSenha());
		
		System.out.println("Adiciona Usuário: "+usuario.getLogin());	
		
	}
	
	public void formulario(){
		
	}
	
	
	

}

alguem sabe onde errei???

esta faltando que jar????
vlwwwww

8 Respostas

leobessa

Ola Naruto,

boa noite…

Posta o seu jsp para podermos encontrar o problema.

O seu usuario/formulario.ok.jsp deve ser algo como:

&lt;form action="usuario.adiciona.logic"&gt; Login: &lt;input type="text" name="usuario.login" /&gt;<br/> Senha: &lt;input type="text" name="usuario.senha" /&gt;<br/> &lt;input type="submit" /&gt; &lt;/form&gt;

… e cuidado com o método adiciona … ( o seu está com um logica estranha)

public void adiciona (Usuario usuario) { DaoFactory factory = new DaoFactory(); factory.beginTransaction(); factory.getUsuarioDao().adiciona(usuario); factory.commit(); factory.close(); System.out.println("Adiciona Usuário: "+usuario.getLogin()); }

Pelo log, pude perceber que o jar do VRaptor está no classpath corretamente.

Abraços

Naruto

ola bom, dia… obrigado vou verficar o meu adiciona
:smiley:
e o meu jsp esta daquele jeito sim
vlwww

Naruto
esse é o meu jsp..~
<%@page pageEncoding="Cp1252" contentType="text/html; charset=Cp1252" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
<title>Cadastro de Usuários</title>
</head>
<body>
<link rel ="stylesheet" type="text/css" href="css/style.css"/>
<h1>Cadastro de Usuários</h1>
<form action="usuario.adiciona.logic">
Login..:<input type="text" name="usuario.login" value="" /><br>
Senha.:<input type="text" name="usuario.senha" value="" />
<input type="submit" name="cadastrar" value="Cadastrar" />
</form>
</body>
</html>

eu mudei o metodo adiciona para igual o que vc me passo mais mesmo assim deu o erro.... o que sera que pode ser hem :/

Naruto

sera que o erro tem algo com o arquivo de log serA???

Naruto

up

leobessa

O erro não está associado ao arquivo de log. A mensagem de erro indica que você pode ver mais detalhes sobre o erro se modificar o arquivo de configuração de log .

Para identificar o erro seria interessante se você configurasse o log4j. De uma lida em http://www.vraptor.org/log4j.html . Depois disso, posta a saída do console aqui.

Quando exatamente o erro acontece?

Voce tem mais algum jsp? (Posta eles também…)

[]

Naruto

Ola bom dia amigo.. alem dele tem mais um jsp sim e vou postar...

é esse

<%@page pageEncoding="Cp1252" contentType="text/html; charset=Cp1252" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
<title>Cadastro de Usuários</title>
</head>
<body>
<link rel ="stylesheet" type="text/css" href="css/style.css"/>
<h1>Cadastro de Usuários</h1>
<form action="usuario.adiciona.logic">
Login..:<input type="text" name="usuario.login" value="" /><br>
Senha.:<input type="text" name="usuario.senha" value="" />
<input type="submit" name="cadastrar" value="Cadastrar" />
</form>
</body>
</html>
e esse
<%@page pageEncoding="Cp1252" contentType="text/html; charset=Cp1252" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
<title>Usuário Adicionado com Sucesso</title>
<link rel="stylesheet" type="text/css" href="css/style.css"/>
</head>
<body>
<h2>Usuário ${param['usuario.login']} adicionado com sucesso!</h2>
</body>
</html>

o erro ocorre no momento que eu clico no botão cadastrar do primeiro jsp
:/
eu posso trocar o log4j.properties pelo log4j.xml ????????

vlwwww vou tentar aqui depois te falo irmão
t+

mateusprado

Verifique o seu metodo adiciona(). O VRaptor cuida dos set’s pra vc. Apenas passe o objeto a ser persistido.

algo assim por exemplo :

public void adiciona(Usuario usuario) {

		Dao<Usuario> dao = new Dao<Usuario>(pegaOuCriaSessionHibernate,
				Usuario.class);

		dao.adiciona(usuario);
		System.out.println("Usuario " + usuario.getLogin()
				+ " adicionado com sucesso.");
}
  • Mas pode usar no seu caso o DaoFactory com Interceptor de seu componete UsuarioLogic. Assim deixando mais elegante e completo.

Boa sorte

[]s,

Criado 30 de setembro de 2008
Ultima resposta 2 de out. de 2008
Respostas 8
Participantes 3