简体   繁体   English

java.lang.ClassCastException:[Ljava.lang.Object; 不能转换为com.sakhnin.classes.MonthlySummary

[英]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.

相关问题 java.lang.ClassCastException:[Ljava.lang.Object; 无法投射到 - java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.lang.ClassCastException:[Ljava.lang.Object; 无法投射到 - java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为com.inrev.segmentation.bean.IRUserSegment - java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.inrev.segmentation.bean.IRUserSegment Java.lang.ClassCastException : [Ljava.lang.Object; 无法投射到 com.hms.pro - Java.lang.ClassCastException : [Ljava.lang.Object; cannot be cast to com.hms.pro java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为com.xl.entity.Users - java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.xl.entity.Users java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为com.entity.survey.SurveyReport - java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.entity.survey.SurveyReport 特殊场景:java.lang.ClassCastException: [Ljava.lang.Object; 不能转换为 [Ljava.lang.String; - Special Scenario : java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; java.lang.ClassCastException: [Ljava.lang.Object; 不能转换为 [Ljava.lang.String; - java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为[Ljava.lang.Comparable; - java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Comparable; 获取错误 java.lang.ClassCastException: java.lang.String 无法转换为 [Ljava.lang.Object; - getting error java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.Object;
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM