Erro com o VRaptor

Alguem conhece esse erro do VRaptor

[code]
HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Unable to instantiate using public br.com.caelum.lojavirtual.loja.DaoInterceptor()
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:55)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

org.vraptor.interceptor.InterceptorInstantiationException: Unable to instantiate using public br.com.caelum.lojavirtual.loja.DaoInterceptor()
org.vraptor.interceptor.InterceptorDealer.poll(InterceptorDealer.java:68)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:58)
org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:47)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:97)
org.vraptor.core.DefaultController.execute(DefaultController.java:46)
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:44)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

org.vraptor.component.ComponentInstantiationException: Unable to instantiate using public br.com.caelum.lojavirtual.loja.DaoInterceptor()
org.vraptor.component.ComponentConstructor.newInstance(ComponentConstructor.java:45)
org.vraptor.interceptor.InterceptorType.newInstance(InterceptorType.java:66)
org.vraptor.interceptor.InterceptorDealer.poll(InterceptorDealer.java:62)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:58)
org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:47)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:97)
org.vraptor.core.DefaultController.execute(DefaultController.java:46)
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:44)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.reflect.InvocationTargetException
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
org.vraptor.component.ComponentConstructor.newInstance(ComponentConstructor.java:43)
org.vraptor.interceptor.InterceptorType.newInstance(InterceptorType.java:66)
org.vraptor.interceptor.InterceptorDealer.poll(InterceptorDealer.java:62)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:58)
org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:47)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:97)
org.vraptor.core.DefaultController.execute(DefaultController.java:46)
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:44)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
org.slf4j.LoggerFactory.(LoggerFactory.java:60)
org.hibernate.cfg.Configuration.(Configuration.java:151)
br.com.caelum.lojavirtual.util.HibernateUtil.(HibernateUtil.java:13)
br.com.caelum.lojavirtual.util.DaoFactory.(DaoFactory.java:14)
br.com.caelum.lojavirtual.loja.DaoInterceptor.(DaoInterceptor.java:13)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
org.vraptor.component.ComponentConstructor.newInstance(ComponentConstructor.java:43)
org.vraptor.interceptor.InterceptorType.newInstance(InterceptorType.java:66)
org.vraptor.interceptor.InterceptorDealer.poll(InterceptorDealer.java:62)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:58)
org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:47)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:97)
org.vraptor.core.DefaultController.execute(DefaultController.java:46)
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:44)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.


Apache Tomcat/6.0.18[/code]

vc deve estar tentando instanciar DaoInterceptor, mas o construtor dessa classe está como private. Não? Cheque isso…

Não cara, não tinha criado um construtor mas sei que por default ele é publico. Mas mesmo assim criei um construtor pra classe e não deu certo. Vo colocar aqui a classe pra você da uma olhada.

Vlw cara

[code]package br.com.caelum.lojavirtual.loja;

import org.vraptor.Interceptor;
import org.vraptor.LogicException;
import org.vraptor.LogicFlow;
import org.vraptor.annotations.Out;
import org.vraptor.view.ViewException;

import br.com.caelum.lojavirtual.util.DaoFactory;

public class DaoInterceptor implements Interceptor{

public DaoInterceptor(){
	
}

public final DaoFactory factory = new DaoFactory();

public void intercept(LogicFlow flow) throws LogicException, ViewException{
	//System.out.println("Passei no intercept()");
	//executa a lógica
	flow.execute();
	
	//se sobrou transação sem comitar, faz rollback
	if(factory.hasTransaction()){
		factory.rollback();
	}
	
	factory.close();
}

@Out(key="br.com.caelum.lojavirtual.util.DaoFactory")
public DaoFactory getFactory(){
	//System.out.println("Passei no getFactory()");
	return factory;
}

}[/code]

sabe me dizer se ele chega a instanciar a DaoFactory uma vez e da problema na segunda ou nem chega a instanciar a primeira vez?? Tenta tirar “final” de daoFactory…

Talvez esta não seja a forma correta de instanciar o seu dao. Tente usar um singleton com um construtor privado.

Talvez esta não seja a forma correta de instanciar o seu dao. Tente usar um singleton com um construtor privado.

eu uso dessa maneira:

public class DaoInterceptor implements Interceptor {

    private DaoFactory factory;
    public static String dominio;
   
    public void intercept(LogicFlow flow) throws LogicException, ViewException {
        
        Session session = HibernateUtil.getSession();

        this.factory = new DaoFactory(session);

        
        flow.execute();
        
        if (factory.hasTransaction()) {
            factory.rollback();
        }
        factory.close();
    }

    @Out(key = DaoFactory.KEY)
    public DaoFactory getFactory() {
        return factory;
    }
    
    @Out(scope=ScopeType.SESSION)
    public String getDominioSession() {
        return dominioSession;
    }
}

Um construtor quando não é declarado explicitamente é protected e não public…

Um construtor quando não é declarado explicitamente é protected e não public…
[/quote]
Errado, é público.

Desculpem meu erro, realmente é público.

Alguem sabe como utilizar o Debbug em um projeto web?
porque eu queria ver até onde vai a execução do programa…

usa Eclipse ou netbeans?

Eclipse tem a perspectiva própria Debug e coloca os breakpoints…

Netbeans vc coloca os breakpoints e roda com Debug, em projeto web é ctrl F5

Entendi tinha feito exatamente isso.
então ele nem passa pela parte lógica
esse erro já aparece antes de cair em qualquer parte lógica

vc tem todas as libs do hibernate no seu projeto? nao ta faltando nada? vc ta tentando fazer akele exercicio da postila de vraptor da caelum?

E sim e o 5.8, da Apostila FJ-28 eu coloquei todas já
eu peguei um tutorial para montar aquele projeto da lojaVirtual
eu to fazendo igualzinho o da apostila e não está dando certo

vc tentou mudar a sua DaoInterceptor pelo código q te passei?

da pra ter quase certeza que algo ele não está conseguindo instanciar… o seu web.xml ta correto?

tentei aqui mano
mais tem que mudar um monte de coisa
e deu uns errors loucos aqui
nessa parte

[code] @Out(key = DaoFactory.KEY)
public DaoFactory getFactory() {
return factory;
}

@Out(scope=ScopeType.SESSION)   
public String getDominioSession() {   
    return dominioSession;   
} [/code]

muda essa parte

 @Out(key = DaoFactory.KEY)     
    public DaoFactory getFactory() {     
        return factory;     
    }     

por

 @Out(key = "seu pacote que esta a classe DaoFactory")     
    public DaoFactory getFactory() {     
        return factory;     
    }     

Troquei cara e continuou apresentando o mesmo problema
eu não entendi muito bem qual o erro

mas Vlw cara

Thiago,

eu voltei nos post e vi que você falou sobre o web.xml. Concerteza deve alguma coisa no web.xml errado, mas só não sei o que. Vo postar aqui e se você conseguir resolver eu agradeço. Valeu cara.

[code]<?xml version="1.0" encoding="ISO-8859-1"?>

lojaVirtual

index.html
index.htm
index.jsp
default.html
default.htm
default.jsp

vraptor2 org.vraptor.VRaptorServlet 1 vraptor2 *.logic

[/code]