Erro em programação web com Java EE7, EclipseLink + GlassFish Server

3 respostas Resolvido
java
Harmendani

Estou desenvolvendo um programa utilizando uma camada de Persistência Eclipse Link da especificação JPA 2.1 do Java. O erro ocorre na operação que antecede o “Editar”. A função responsável por isso funciona apenas em classes que no BD, não guardam chave estrangeira.

A seguinte mensagem é exibida: _org.apache.jasper.JasperException: java.lang.IllegalArgumentException: Cannot convert model.Curso@2080cec of type class model.Curso to class java.lang.Long

O seguinte código de Preparar esta Operação está logo abaixo, . O erro impede o carregamento da página. A classe Aluno se relaciona com a classe Curso, a qual tem uma chave estrangeira na classe Aluno. A operação “Editar” do Curso funciona normalmente.

O curioso é que trocando “request.setAttribute(“cursos”, CursoDAO.getInstance().obterCursos());” substituindo “cursos” por apenas “curso”, a tela carrega e o editar funciona, porém não carrega na combo box e nem na memória todos os cursos para o usuário editar. E se eu colocar os dois Request dá ainda mais erros.

public void prepararOperacao(HttpServletRequest request, HttpServletResponse response) throws SQLException, ServletException {
            try {            
            String operacao = request.getParameter("operacao");
            request.setAttribute("operacao", operacao);
            request.setAttribute("cursos", CursoDAO.getInstance().obterCursos());
            request.setAttribute("alunos", AlunoDAO.getInstance().obterAlunos());         
            
            if(!operacao.equals("Incluir")){                 
                int matricula = Integer.parseInt(request.getParameter("matricula"));                
                aluno = AlunoDAO.getInstance().obterAluno(matricula);                
                request.setAttribute("aluno", aluno);                 
            }
            
            
            RequestDispatcher view = request.getRequestDispatcher("/cadastraAluno.jsp");
            view.forward(request, response);
        } catch (ServletException ex) {
            throw ex;
        } catch (IOException ex) {
            throw new ServletException(ex);
        }
    }

Será um erro no JSP que já verifiquei várias vezes? O que posso fazer?

3 Respostas

cviniciusm

Olá,

Leia novamente sua publicação, você acha que colocou todas as informações necessárias para alguém ajudá-lo ?

Felipe_Miranda
Solucao aceita

Com uma probilidade alta de ser no seu JSP, posta seu JSP e seu bean curso, abraços;

Harmendani

Sim! Na verdade. o Get na classe que contém a chave estrangeira estava retornando um atributo do tipo Classe, isso estava gerando erro no JSP pois o retorno no meu caso deveria ser do tipo Integer. Obrigado e abraços ;

Criado 5 de junho de 2016
Ultima resposta 6 de jun. de 2016
Respostas 3
Participantes 3