Ragazzi mi servirebbe un aiuto per risolvere questa eccezione
ho una classe corso fatta in questo modo
package model;
import java.io.Serializable;
import java.util.Set;
import javax.persistence.*;
@Entity (name="Corsi")
@NamedQuery(name="Corsi.findAll", query="SELECT c FROM Corsi c")
public class Corso implements Serializable{
private static final long serialVersionUID = -94024634956615516L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id_corso")
private int idCorso;
@Column(name="descrizione")
private String descrizione;
@ManyToMany(mappedBy="corsi")
private Set<Persona> persone;
public Set<Persona> getPersone() {
return persone;
}
public void setPersone(Set<Persona> persone) {
this.persone = persone;
}
public int getIdCorso() {
return idCorso;
}
public void setIdCorso(int idCorso) {
this.idCorso = idCorso;
}
public String getDescrizione() {
return descrizione;
}
public void setDescrizione(String descrizione) {
this.descrizione = descrizione;
}
}
poi ho una classe DebugProva
package dao;
import java.sql.Connection;
import java.util.*;
import javax.persistence.*;
import javax.servlet.http.HttpSession;
import model.Corso;
public class DebugProva {
@PersistenceContext(unitName = "JPAHibernateDataSource")
protected static EntityManager em;
@PersistenceUnit(unitName = "JPAHibernateDataSource")
protected static EntityManagerFactory emf;
protected static EntityTransaction tx = null;
protected static Connection conn = null;
static
{
emf = Persistence.createEntityManagerFactory("JPAHibernateDataSource");
em = emf.createEntityManager();
tx = em.getTransaction();
em.clear();
}
public static void init(HttpSession p_session)
{
em.clear();
}
@SuppressWarnings("unchecked")
public static Map<String,Corso> provaDebug() {
Query query = em.createNativeQuery("SELECT c.id_Corso, c.descrizione FROM corsi c");
List<Corso> listaCorsi = (List<Corso>) query.getResultList();
Map<String, Corso> descrizioniCorsi = new HashMap<String, Corso>();
for (Corso corso : listaCorsi) {
String descrizione = corso.getDescrizione();
descrizioniCorsi.put(descrizione, corso);
}
return descrizioniCorsi;
}
}
package servlet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.DbUtils;
import dao.DebugProva;
import model.Macchina;
import model.Persona;
import model.Corso;
/**
* Servlet implementation class ListaPersone
*/
@WebServlet("/pippo")
public class ListaPersone extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ListaPersone() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Persona> listaPersone = DbUtils.selectAllPersone();
System.out.println("============= Prova DB ==========");
Map<String,Corso> map = DebugProva.provaDebug();
List<Corso> listaCorso = new ArrayList<Corso>(map.values());
for(Corso c : listaCorso) {
System.out.println("ID CORSO: "+ c.getIdCorso());
System.out.println("ID_DESCR: " + c.getDescrizione());
}
request.getSession().setAttribute("listaCorso", listaCorso);
request.getRequestDispatcher("result.jsp").forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
La mia jsp è fatta in questo modo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="model.Corso "%>
<%@ page import="java.util.List"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Lista Persone</title>
<%
List<Corso> listaCorso = (List<Corso>) session.getAttribute("listacorso");
%>
</head>
<body>
<h2>Contenuto della tabella Corsi</h2>
<table>
<%
for (int i = 0; i < listaCorso.size(); i++) {
Corso c = listaCorso.get(i);
%>
<tr>
<td><%=c.getIdCorso()%></td>
<td><%=c.getDescrizione()%></td>
</tr>
<%
}
%>
</table>
</body>
</html>
a runtime ho questo errore
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to model.Corso
dao.DebugProva.provaDebug(DebugProva.java:52)
servlet.ListaPersone.doGet(ListaPersone.java:47)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
qualcuno sa dirmi come risolverlo?