play.jobs.Job使用時注意型別轉換異常
阿新 • • 發佈:2018-12-17
公司使用的是play框架。開發時用到匯出功能,那當然是用job了,在controller中新增一個方法:
public static void downExcelModel(List<ConsumptionRecord> crList) { try{ response.setContentTypeIfNotSet("application/csv"); response.setHeader("Content-Disposition","attachment;filename=cr.csv"); response.reset(); Promise<Boolean> csv=new ExportCRCsvJob(crList,response.out).now(); await(csv); response.out.close(); }catch(Exception ex){ Logger.info("out excel error",ex); } }
呼叫該方法時總是報型別轉換異常:
Oops: ClassCastException An unexpected error occured caused by exception ClassCastException: java.lang.String cannot be cast to java.util.List | play-thread-1 play.exceptions.UnexpectedException: Unexpected Error at play.mvc.Controller.redirect(Controller.java:613) at play.mvc.Controller.redirect(Controller.java:543) at controllers.ConsumptionRecords.downExcelModel1(ConsumptionRecords.java) at controllers.ConsumptionRecords.index(ConsumptionRecords.java:90) at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:548)
打樁看型別沒有錯誤,檢查了兩個小時也沒有發現問題。。。
最後發現是方法的訪問許可權為public導致的,改為private問題解決。