[英]java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.sakhnin.classes.MonthlySummary
I'm trying to print all date in this MonthlyReport and got this exception. 我正在尝试打印此MonthlyReport中的所有日期并获得此异常。
SEVERE: Servlet.service() for servlet showMettingReports threw exception java.lang.ClassCastException: [Ljava.lang.Object;
严重:servlet showMettingReports的Servlet.service()引发了异常java.lang.ClassCastException:[Ljava.lang.Object; cannot be cast to com.sakhnin.classes.MonthlySummary at org.apache.jsp.jspFiles.showMettingReports_jsp._jspService(showMettingReports_jsp.java:150) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilt
无法转发到org.apache.jsp.jspFiles.showMettingReports_jsp._jspService(howMettingReports_jsp.java:150)的com.sakhnin.classes.MonthlySummary org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)at位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)的javax.servlet.http.HttpServlet.service(HttpServlet.java:725)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet。 java:396)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)at org.apache.catalina.core.ApplicationFilterChain的javax.servlet.http.HttpServlet.service(HttpServlet.java:725) .internalDoFilter(ApplicationFilterChain.java:291)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)atg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)org.apache.catalina.core.ApplicationFilterChain.doFilt er(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318) at com.sakhnin.implementations.Controller.doGet(Controller.java:140) at javax.servlet.http.HttpServlet.service(HttpServlet.java:618) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.Ap
呃(ApplicationFilterChain.java:206)org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)atg.apache .catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391)atg.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318)at com.sakhnin.implementations.Controller.doGet(Controller.java:140) )在javax.servlet.http.HttpServlet.service(HttpServlet.java:618)的javax.servlet.http.HttpServlet.service(HttpServlet.java:725)org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain。 java:291)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)atg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)org.apache.catalina .core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)org.apache.catalina.core.Ap plicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658) at org.apache.coyote.http11.Http11NioProtocol$Http11Connection
plicationFilterChain.doFilter(ApplicationFilterChain.java:206)org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)atg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)at org .apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve) .java:79)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)org.apache.catalina。 conne.CoyoteAdapter.service(CoyoteAdapter.java:537)org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:658)在org.apache.coyote.http11.Http11NioProtocol $ Http11Connection Handler.process(Http11NioProtocol.java:222) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source)
Handler.process(Http11NioProtocol.java:222)org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1566)org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.run( NioEndpoint.java:1523)java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)at org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable .run(TaskThread.java:61)at java.lang.Thread.run(Unknown Source)
java.lang.ClassCastException: [Ljava.lang.Object;
java.lang.ClassCastException:[Ljava.lang.Object; cannot be cast to com.sakhnin.classes.MonthlySummary
不能转换为com.sakhnin.classes.MonthlySummary
MonthlySummary.java MonthlySummary.java
public class MonthlySummary {
@Id
private String Date;
private int Cost;
private String Place;
private String Start;
private String End;
private String Description;
private int MentorID;
public MonthlySummary() {
// TODO Auto-generated constructor stub
}
public MonthlySummary(String place, String date, String start, String end,
String description, int cost, int mentorID) {
super();
Place = place;
Date = date;
Start = start;
End = end;
Description = description;
Cost = cost;
MentorID = mentorID;
}
MonthlySummaryIMP.java MonthlySummaryIMP.java
public List<MonthlySummary> getMentorReportsById(int id) {
List<MonthlySummary> reports=null;
try{
session = factory.openSession();
session.beginTransaction();
// Fetch all active coupons whose businesses' parent's category is as got in the argument
SQLQuery query = session.createSQLQuery("SELECT * FROM MonthlySummary WHERE MentorID="+id );
reports = query.list();
closeSession();
}
catch(HibernateException e){
System.err.println(e.getMessage());
}
catch(Exception e){
System.err.println(e.getMessage());
}
return reports;
}
jsp file jsp文件
<tbody>
<%
List<MonthlySummary> m = (List<MonthlySummary>)request.getSession().getAttribute("meetingsReports");
for(MonthlySummary report : m) {
%>
<td>Date<%=report.getDate() %></td>
<td>Date<%=report.getPlace()%></td>
<td>Date<%=report.getStart()%></td>
<td>Date<%=report.getEnd()%></td>
<td>Date<%=report.getDescription() %></td>
<td>Date<%=report.getCost()%></td>
<%
}
%>
</tbody>
To avoid such ClassCastException
, you need to add Entity into your query object. 要避免此类
ClassCastException
,您需要将Entity添加到查询对象中。 Try below-- 试试以下 -
SQLQuery query = session.createSQLQuery("SELECT * FROM MonthlySummary WHERE MentorID="+id );
query.addEntity(MonthlySummary.class);
reports = query.list();
--rest of code
As your stack trace suggests that the its trying to cast List of MonthlySummary
but actually it cannot understand the left hand object to complete this process. 由于您的堆栈跟踪表明它试图转换List of
MonthlySummary
但实际上它无法理解左手对象来完成此过程。
This kind of strange because if you would have not set the HTTPSession
attribute on the first hand it should give you Null Pointer Exception. 这种奇怪的,因为如果你没有在第一手设置
HTTPSession
属性,它应该给你Null Pointer Exception。
Are you sure that you are not setting any attribute with that key, my assumption here is that you are setting some other object in that key. 你确定你没有使用该键设置任何属性,我的假设是你在该键中设置了一些其他对象。
Please use the trick mentioned by Sighr and that should do the magic for you. 请使用Sighr提到的技巧 ,这应该为你做出魔力。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.