天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1064|回复: 3

[已解决] Number is not a constructor

[复制链接]
zcbys 发表于 2023-5-12 16:16:55 | 显示全部楼层 |阅读模式
本帖最后由 zcbys 于 2023-5-12 16:18 编辑

系统经常出现“Number” is not a constructor的报错提示,以下是报错日志的记录:
org.mozilla.javascript.EvaluatorException: "Number" is not a constructor. (Widget[局人事考勤]-11e7-af1d-99067923-ab80-f9d84f25217d#47)
        at org.mozilla.javascript.DefaultErrorReporter.runtimeError(Unknown Source)
        at org.mozilla.javascript.Context.reportRuntimeError(Unknown Source)
        at org.mozilla.javascript.Context.reportRuntimeError(Unknown Source)
        at org.mozilla.javascript.Context.reportRuntimeError1(Unknown Source)
        at org.mozilla.javascript.ScriptRuntime.getExistingCtor(Unknown Source)
        at org.mozilla.javascript.ScriptRuntime.newObject(Unknown Source)
        at org.mozilla.javascript.ScriptRuntime.toObject(Unknown Source)
        at org.mozilla.javascript.ScriptRuntime.toObjectOrNull(Unknown Source)
        at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(Unknown Source)
        at org.mozilla.javascript.gen.c49426._c0(Widget[局人事考勤]-11e7-af1d-99067923-ab80-f9d84f25217d:47)
        at org.mozilla.javascript.gen.c49426.call(Widget[局人事考勤]-11e7-af1d-99067923-ab80-f9d84f25217d)
        at org.mozilla.javascript.ContextFactory.doTopCall(Unknown Source)
        at org.mozilla.javascript.ScriptRuntime.doTopCall(Unknown Source)
        at org.mozilla.javascript.gen.c49426.call(Widget[局人事考勤]-11e7-af1d-99067923-ab80-f9d84f25217d)
        at org.mozilla.javascript.gen.c49426.exec(Widget[局人事考勤]-11e7-af1d-99067923-ab80-f9d84f25217d)
        at cn.myapps.core.macro.runner.JavaScriptRunner.run(JavaScriptRunner.java:135)
        at cn.myapps.core.widget.action.PageWidgetRuntimeAction.doDisplayWidget(PageWidgetRuntimeAction.java:184)
        at sun.reflect.GeneratedMethodAccessor14016.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252)
        at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
        at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
        at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563)
        at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
        at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at cn.myapps.base.web.filter.PersistenceFilter.doFilter(PersistenceFilter.java:34)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at cn.myapps.base.web.filter.SecurityFilter.doFilter(SecurityFilter.java:149)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:75)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:197)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at cn.myapps.core.sso.cas.filter.OBPMAuthenticationFilter.doFilter(OBPMAuthenticationFilter.java:87)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at cn.myapps.base.web.filter.EncodingFilter.doFilter(EncodingFilter.java:28)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1695)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)

这段报错代码如下:
  1. #include "Query";
  2. //var html = "<div>";
  3. var html = "<div class='qinjdiv'>";
  4. html += "<style type='text/css'>";
  5. html += "@media screen and (max-width: 768px){";
  6. html += ".qinjdiv {display:none;}";
  7. html += "}";
  8. html += "</style>";


  9. var nianjia = 0;
  10. var shijia = 0;
  11. var bingjia = 0;
  12. var yingong = 0;
  13. var tanqin = 0;
  14. var hunjia = 0;
  15. var sangjia = 0;
  16. var chanjia = 0;
  17. var huli = 0;
  18. var year = getYear(getToday());
  19. var _statime = year + "-01-01 00:00:00";
  20. var _endtime = year + "-12-31 23:59:59";
  21. var _on = "";
  22. var _off = "";
  23. var _user = getWebUser().getId();
  24. var _year = getYear(getToday());
  25. var _month = getMonth(getToday());
  26. var _day = getDay(getToday());
  27. var _star =_year + "-" + _month + "-" + _day + " 00:00:00";
  28. var _end =_year + "-" + _month + "-" + _day + " 23:59:59";


  29. var sqlshijia = "select item_l_total from tlk_leave where author = '"+_user+"' and item_category = '事假' and item_starttime between '"+_statime+"' and '"+_endtime+"'  ";
  30. var datasshijia = Query('ece_oa',sqlshijia, getApplication());
  31. if(datasshijia.length>0){                               
  32.         for(var j = 0 ; j < datasshijia.length ; j ++){                                            
  33.                 shijia = Number(datasshijia[j].get("item_l_total"))+Number(shijia);                                                                      
  34.         }
  35. }
  36. var sqlshijia_co = "select item_l_total from tlk_leave_co where author = '"+_user+"' and item_category = '事假' and item_starttime between '"+_statime+"' and '"+_endtime+"'  ";
  37. var datasshijia_co = Query('ececo_oa',sqlshijia_co, getApplication());
  38. if(datasshijia_co.length>0){                               
  39.         for(var j = 0 ; j < datasshijia_co.length ; j ++){                                            
  40.                 shijia = Number(datasshijia_co[j].get("item_l_total"))+Number(shijia);                                                                      
  41.         }
  42. }
  43. shijia=shijia.toFixed(2);

复制代码


其中具体报错的语句是47行:
  1. shijia=shijia.toFixed(2);
复制代码



另外有一段代码也报同样的错误,具体代码如下:
  1. //两个日期之间的日期   
  2.      //startTime = "2012-3-25";
  3.     function dayToDay (startTime,endTime){
  4.         var days = [];
  5.         var tempStart = startTime.split("-");
  6.         var dateStart = new Date(tempStart[0],tempStart[1],tempStart[2]);
  7.           
  8.         var tempEnt = endTime.split("-");
  9.         var dateEnt = new Date(tempEnt[0],tempEnt[1],tempEnt[2]);
  10.           
  11.         while((dateEnt.getTime()-dateStart.getTime())>=0){
  12.             var year = dateStart.getFullYear();
  13.             var month = dateStart.getMonth().toString().length==1?"0"+dateStart.getMonth().toString():dateStart.getMonth();
  14.             var day = dateStart.getDate().toString().length==1?"0"+dateStart.getDate():dateStart.getDate();
  15.             days.push(year+"-"+month+"-"+day);
  16.             dateStart.setDate(dateStart.getDate()+1);
  17.         }
  18.         return days;
  19.     }
复制代码


其中具体报错语句是13行:
  1. var month = dateStart.getMonth().toString().length==1?"0"+dateStart.getMonth().toString():dateStart.getMonth();
复制代码



报错的页面刷新后又恢复正常~没有报错~能够正常执行出结果~但是多次刷新中偶尔又会有几次报错~请问怎么回事?
lillian828 发表于 2023-5-23 11:33:50 | 显示全部楼层
您好,请问是哪个版呢?
请加我QQ: 2122674861
lillian828 发表于 2023-5-30 19:47:56 | 显示全部楼层
您好。
把代码改成闭包的方式
 楼主| zcbys 发表于 2023-6-1 12:37:54 | 显示全部楼层
已解决,与闭包没有关系。
是不能用Number()和.toString()

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 17:21

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表