[RESOLVIDO] - Incapaz de encontrar o construtor correto  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
Ramon.Onix
JavaChild
[Avatar]

Membro desde: 21/11/2009 13:36:09
Mensagens: 148
Offline

Bom, não sei bem o que esta acontecendo, sou cabaço em java ainda, mas conversando com o Mestre Lucas ele me pediu pra que colocasse o código aki!

[code] SEVERE: StandardWrapperValve [default]: PWC1406: Servlet.service () for servlet default jogou exceção
br.com.caelum.vraptor.http.InvalidParameterException: Impossível encontrar o construtor correto
...
...

Java.lang.Integer Caused by: java.lang.NoSuchMethodException:. <init> ()
        na java.lang.Class.getConstructor0 (Class.java: 2706)
        na java.lang.Class.getDeclaredConstructor (Class.java: 1985)
        na br.com.caelum.vraptor.http.ognl.GenericNullHandler.instantiate (GenericNullHandler.java: 70)
        na br.com.caelum.vraptor.http.ognl.ReflectionBasedNullHandler.nullPropertyValue (ReflectionBasedNullHandler.java: 79)
[/ code]

Este erro ocorre o locatário tentar salvar um, provavelmente o erro Deve Ser nestas classes.
Modelo
[code]
javax.persistence importação .*;
org.hibernate.validator.Length importação;
org.hibernate.validator.NotNull de importação;

/ **
 *
 * @ Author Onix
 * /
@ Entity
Locatario class (

    @ Id
    @ GeneratedValue
    @ Column (name = id_locatario ")
    private Integer id;
    @ NotNull
    @ Length (min = 3, max = 150)
    @ Column (name = "locatario")
    private String nome;
    @ NotNull
    @ Length (min = 3, max = 150)
    condominio private String;
    @ NotNull
    @ Length (min = 3, max = 150)
    Unidade private Integer;
    @ NotNull
    @ Length (min = 3, max = 150)
    private String telefone;
    @ NotNull

    private String email;

    getCondominio String () (
        condominio de retorno;
    )

    setCondominio void (condominio String) (
        this.condominio = condominio;
    )

    public String () (
        e-mail de retorno;
    )

    public void (String email) (
        this.email = email;
    )

    public Integer getId () (
        return id;
    )

    public void setId (Integer id) (
        this.id = id;
    )

    public String getNome () (
        Nome de retorno;
    )

    public void setNome (String nome) (
        this.nome = nome;
    )

    getTelefone String () (
        telefone de retorno;
    )

    setTelefone void (String telefone) (
        this.telefone = telefone;
    )

    getUnidade public Integer () (
        Unidade de retorno;
    )

    setUnidade void (unidade Integer) (
        this.unidade = unidade;
    )
    
)
[/ code]

Controlador
[code]
br.com.caelum.vraptor importação .*;
br.com.caelum.vraptor.validator.Hibernate de importação;
br.com.caelum.vraptor.validator.ValidationMessage de importação;
br.com.webcond.dao.CondominioDao de importação;
br.com.webcond.dao.LocatarioDao de importação;
br.com.webcond.dao.UnidadeDao de importação;
br.com.webcond.infra.Restrito de importação;
br.com.webcond.modelo.Locatario de importação;
import java.util.List;
br.com.caelum.vraptor.view.Results importação estática .*;

/ **
 *
 * @ Author Onix
 * /
@ Resource
public class LocatarioController (

    private DAO LocatarioDao final;
    privado daoc CondominioDao final;
    privado Daou UnidadeDao final;
    Resultado resultado final privado;
    privado validator validador final;

    LocatarioController pública (LocatarioDao dao, CondominioDao daoc, UnidadeDao Daou, resultado Resultado, validator validador) (
        this.dao = dao;
        this.daoc = daoc;
        this.daou = Daou;
        resultado this.result =;
        validador this.validator =;
    )

    @ Restrito
    @ Path ( "locatario /")
    @ Post
    public void adiciona (Locatario locatario) (
        if (dao.existeLocat (locatario)) (
            ValidationMessage (validator.add novo ( "Já existe um locatário com este nome." locatario.nome "));
        )
        validator.addAll (Hibernate.validate (locatario)); / / importação do VRaptor
        validator.onErrorUse (lógica ()). viar (LocatarioController.class). Novo ();

        dao.salva (locatario);
        result.redirectTo (LocatarioController.class). Lista ();
    )

    @ Restrito
    @ Path ( "locatario / / (locatario.id)")
    Put @
    Altera void (Locatario locatario) (
        validator.addAll (Hibernate.validate (locatario)); / / importação do VRaptor
        validator.onErrorUse (lógica ()). viar (LocatarioController.class). Edita ();

        dao.altera (locatario);
        result.redirectTo (LocatarioController.class). Lista ();
    )

    @ Restrito
    @ Path ( "locatario / / (id) / remover")
    @ Delete
    public void remove (Integer id) (
        Locatario locatario = dao.carrega (id);
        locatario (dao.remove);
        result.redirectTo (LocatarioController.class). Lista ();
    )

    @ Restrito
    @ Path ( "locatario / / (id) / Edita")
    @ Get
    Edita Locatario pública (Integer id) (
        result.include ( "condominios", daoc.listaTudo ());
        result.include ( "unidades", daou.listaTudo ());
        dao.carrega return (id);
    )

    @ Restrito
    @ Path ( "locatario /")
    @ Get
    Lista <Locatario> public List () (
        dao.listaTudo retorno ();
    )

    @ Restrito
    @ Path ( "/ locatario / Novo")
    @ Get
    Novo void () (
        result.include ( "condominios", daoc.listaTudo ());
        result.include ( "unidades", daou.listaTudo ());
    )

    @ Restrito
    @ Path ( "locatario / / (id) / Edita")
    @ Post
    Edita void () (
    )
)
[/ code]

E o Dao
[code]
br.com.caelum.vraptor.ioc.Component importação;
br.com.webcond.modelo.Locatario de importação;
import java.util.List;
importação org.hibernatee .*;
org.hibernate.criterion.Restrictions de importação;

/ **
 *
 * @ Author Onix
 * /
@ Component
public class LocatarioDao (

    private Session session;

    LocatarioDao pública (Session session) (
        sessão this.session =;
    )

    public void salva (Locatario locatario) (
        Transaction tx = session.beginTransaction ();
        locatario session.save ();
        session.close ();
        tx.commit ();
        session.close ();
    )

    public void remove (locatario Locatario) (
        Transaction tx = session.beginTransaction ();
        session.delete (locatario);
        session.close ();
        tx.commit ();
        session.close ();
    )

    Altera void (Locatario locatario) (
        Transaction tx = session.beginTransaction ();
        session.update (locatario);
        session.close ();
        tx.commit ();
        session.close ();
    )

    public void atualiza (Locatario locatario) (
        Transaction tx = session.beginTransaction ();
        this.session.update (locatario);
        session.close ();
        tx.commit ();
        session.close ();
    )

    existeLocat public boolean (Locatario locatario) (
        Locatario encontrado = (Locatario session.createCriteria) (Locatario.class). Add (Restrictions.eq ( "nome", locatario.getNome ())). uniqueResult ();
        encontrado retorno! = null;
    )

    Carrega Locatario pública (Integer id) (
        return (Locatario this.session.load) (Locatario.class, id);
    )

    lista pública <Locatario> listaTudo () (
        this.session.createCriteria retorno (Locatario.class). list ();
    )
)
[/ code]

Se alguém puder me ajudar ...
Serei Grato!

This message was edited 1 time. Last update was at 22/03/2010 15:54:49


Onix
I have .Class do you?
ATENÇÃO... Este é o elemento adversário, que por falta dele, constantemente ameaça destruir seus códigos...
[WWW] [MSN]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

Vc tem um ComponentFactory para Session ?

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Ramon.Onix
JavaChild
[Avatar]

Membro desde: 21/11/2009 13:36:09
Mensagens: 148
Offline

tenho um CriadorDeSessionFactory



Seria isso?

Onix
I have .Class do you?
ATENÇÃO... Este é o elemento adversário, que por falta dele, constantemente ameaça destruir seus códigos...
[WWW] [MSN]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

nop seria um assim



Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Ramon.Onix
JavaChild
[Avatar]

Membro desde: 21/11/2009 13:36:09
Mensagens: 148
Offline

CriadorDeSession ?
Entendi errado sua pergunta... Foi mal



Mas como seria o CriadorDeSession se nas demais lógicas não dá erro?

This message was edited 1 time. Last update was at 20/03/2010 11:35:18


Onix
I have .Class do you?
ATENÇÃO... Este é o elemento adversário, que por falta dele, constantemente ameaça destruir seus códigos...
[WWW] [MSN]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

bem estranho, pois ele esta relcmanado que não acha o construtor correto...

tem mais de 1 construtor não ? como o construtor vazio ?

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Ramon.Onix
JavaChild
[Avatar]

Membro desde: 21/11/2009 13:36:09
Mensagens: 148
Offline

Não tem!
E só dá erro nesta fase, apenas na hr de salvar um locatário!
Tudo funciona, menos isso!

Onix
I have .Class do you?
ATENÇÃO... Este é o elemento adversário, que por falta dele, constantemente ameaça destruir seus códigos...
[WWW] [MSN]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

vc esta usando _method="put" na hora de enviar ?

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Ramon.Onix
JavaChild
[Avatar]

Membro desde: 21/11/2009 13:36:09
Mensagens: 148
Offline

Vc fala na view?
Na View eu to usando "POST"


Onix
I have .Class do you?
ATENÇÃO... Este é o elemento adversário, que por falta dele, constantemente ameaça destruir seus códigos...
[WWW] [MSN]
garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

O mais bizarro é saber que ele não encontra o construtor default da classe integer.



Será que é porque integer não possui um construtor padrão?
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

posta seu formulário de adição de locatários por favor

--
Caelum
www.caelum.com.br

Ramon.Onix
JavaChild
[Avatar]

Membro desde: 21/11/2009 13:36:09
Mensagens: 148
Offline




Onix
I have .Class do you?
ATENÇÃO... Este é o elemento adversário, que por falta dele, constantemente ameaça destruir seus códigos...
[WWW] [MSN]
garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

Eu tive esse erro quando tentei usar o iogi. Tudo que é parametro de método ele tentava chamar o construtor padrão. Obvio que nos casos das wrappers dos tipos primitivos daria me***.

Pela stacktrace não me parece nada a ver com SessionFactory nem mesmo com a view. A impressão que tenho, posso estar errado, é algo interno na hora de injetar os parametros no método.

Você pode nos passar a stacktrace inteira, Ramon.Onix?

Uma observação: você não precisa dessa CriadorDeSession, pois o vraptor já faz isso para você: http://vraptor.caelum.com.br/documentacao/componentes-utilitarios-opcionais/
Ramon.Onix
JavaChild
[Avatar]

Membro desde: 21/11/2009 13:36:09
Mensagens: 148
Offline

Sr. Garcia-jj, eu estou aprendendo ainda! E na apostila que estava seguindo tinha um criador de session... Mas eu vou ver como retiro!

Bom o Stack Trace ta ai como vc me pediu:


This message was edited 1 time. Last update was at 22/03/2010 12:07:28


Onix
I have .Class do you?
ATENÇÃO... Este é o elemento adversário, que por falta dele, constantemente ameaça destruir seus códigos...
[WWW] [MSN]
Ramon.Onix
JavaChild
[Avatar]

Membro desde: 21/11/2009 13:36:09
Mensagens: 148
Offline

Só por curiosidade mudei o Integer unidade, na classe locatario, por String unidade, o erro não acontece mais ao salvar, mas não salva pq o Nome do Condominio não passou na validação, .
A combo está vindo preenchida, mas na hr de enviar deve estar indo vazia! Seilá, agora só sei que nada sei!

Onix
I have .Class do you?
ATENÇÃO... Este é o elemento adversário, que por falta dele, constantemente ameaça destruir seus códigos...
[WWW] [MSN]
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team