Fórum java.lang.Integer cannot be cast to entity.Produto #458888

19/10/2013

0

Bom dia prezados,
Estou construindo uma pequena aplicação java web com netbeans e, ao carregar a pagina gera um erro de converção. o erro é o seguinte:

FATAL: JSF1073: java.lang.ClassCastException caught during processing of RENDER_RESPONSE 6 : UIComponent-ClientId=, Message=java.lang.Integer cannot be cast to entity.Produto
FATAL: java.lang.Integer cannot be cast to entity.Produto
java.lang.ClassCastException: java.lang.Integer cannot be cast to entity.Produto
at converter.ProdutoConverter.getAsString(ProdutoConverter.java:39)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:521)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOption(MenuRenderer.java:534)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:794)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:847)
at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:297)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:924)


Abaixo aqui vem o codigo de conversão:

package converter;

import dao.ProdutoDAO;
import entity.Produto;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;

public class ProdutoConverter implements Converter{

@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
try {
int codigo = Integer.parseInt(value);
return new ProdutoDAO().produtoFind(codigo);
} catch (ClassNotFoundException ex) {
Logger.getLogger(ProdutoConverter.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(ProdutoConverter.class.getName()).log(Level.SEVERE, null, ex);
}
return null;

}

@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
System.out.println("Value: "+ value);
Produto produto = (Produto)value;
return String.valueOf(produto.getCod_prod());

}

}


Por fim, fiz o cadastro do meu converter na minha faces-config de seguinte modo:

<converter>
<converter-id>ProdutoConverter</converter-id>
<converter-class>converter.ProdutoConverter</converter-class>
</converter>


ALGUEM PODE ME AJUDAR A RESOLVER ESTE ERRO? POR VAFOR...
Joaquim Kitare

Joaquim Kitare

Responder

Posts

19/10/2013

Joaquim Kitare

Bom dia prezados,
Estou construindo uma pequena aplicação java web com netbeans e, ao carregar a pagina gera um erro de converção. o erro é o seguinte:

FATAL: JSF1073: java.lang.ClassCastException caught during processing of RENDER_RESPONSE 6 : UIComponent-ClientId=, Message=java.lang.Integer cannot be cast to entity.Produto
FATAL: java.lang.Integer cannot be cast to entity.Produto
java.lang.ClassCastException: java.lang.Integer cannot be cast to entity.Produto
at converter.ProdutoConverter.getAsString(ProdutoConverter.java:39)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:521)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOption(MenuRenderer.java:534)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:794)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:847)
at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:297)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:924)


Abaixo aqui vem o codigo de conversão:

package converter;

import dao.ProdutoDAO;
import entity.Produto;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;

public class ProdutoConverter implements Converter{

@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
try {
int codigo = Integer.parseInt(value);
return new ProdutoDAO().produtoFind(codigo);
} catch (ClassNotFoundException ex) {
Logger.getLogger(ProdutoConverter.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(ProdutoConverter.class.getName()).log(Level.SEVERE, null, ex);
}
return null;

}

@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
System.out.println("Value: "+ value);
Produto produto = (Produto)value;
return String.valueOf(produto.getCod_prod());

}

}


Por fim, fiz o cadastro do meu converter na minha faces-config de seguinte modo:

<converter>
<converter-id>ProdutoConverter</converter-id>
<converter-class>converter.ProdutoConverter</converter-class>
</converter>


ALGUEM PODE ME AJUDAR A RESOLVER ESTE ERRO? POR VAFOR...
Bom dia prezados,
Estou construindo uma pequena aplicação java web com netbeans e, ao carregar a pagina gera um erro de converção. o erro é o seguinte:

FATAL: JSF1073: java.lang.ClassCastException caught during processing of RENDER_RESPONSE 6 : UIComponent-ClientId=, Message=java.lang.Integer cannot be cast to entity.Produto
FATAL: java.lang.Integer cannot be cast to entity.Produto
java.lang.ClassCastException: java.lang.Integer cannot be cast to entity.Produto
at converter.ProdutoConverter.getAsString(ProdutoConverter.java:39)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:521)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOption(MenuRenderer.java:534)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:794)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:847)
at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:297)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:924)


Abaixo aqui vem o codigo de conversão:

package converter;

import dao.ProdutoDAO;
import entity.Produto;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;

public class ProdutoConverter implements Converter{

@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
try {
int codigo = Integer.parseInt(value);
return new ProdutoDAO().produtoFind(codigo);
} catch (ClassNotFoundException ex) {
Logger.getLogger(ProdutoConverter.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(ProdutoConverter.class.getName()).log(Level.SEVERE, null, ex);
}
return null;

}

@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
Produto produto = (Produto)value;
return String.valueOf(produto.getCod_prod());

}

}


Por fim, fiz o cadastro do meu converter na minha faces-config de seguinte modo:

<converter>
<converter-id>ProdutoConverter</converter-id>
<converter-class>converter.ProdutoConverter</converter-class>
</converter>


ALGUEM PODE ME AJUDAR A RESOLVER ESTE ERRO? POR VAFOR...
Responder

Gostei + 0

20/10/2013

Luciano Martins

Vc está tentando passar um object Produto para um tipo Integer...axo q o certo seria passar assim
produto.getCodigo();
ai sim só vai o Integer do Produto não o objeto Produto fiz entender?
Responder

Gostei + 0

20/10/2013

Joaquim Kitare

Não entendi muito bem, em que parte do meu código devo substituir o código que me deste?
Responder

Gostei + 0

20/10/2013

Luciano Martins

O erro diz q vc não pode fazer um cast de INTEGER para PRODUTO.

Substituia isto:
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
Produto produto = (Produto)value;
return String.valueOf(produto.getCod_prod());
}


Por isto:

@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
return String.valueOf(value);
}
Responder

Gostei + 0

21/10/2013

Joaquim Kitare

Substitui o codigo que me deste e gera o seguinte erro na pagina:
•j_idt5:j_idt14: Validation Error: Value is not valid
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar