NutzCN Logo
问答 nutz项目启动报错
发布于 2182天前 作者 qq_609b0389 2393 次浏览 复制 上一个帖子 下一个帖子
标签: nutzwk
十一月 09, 2018 6:36:27 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:hfits' did not find a matching property.
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version:        Apache Tomcat/7.0.86
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built:          Apr 9 2018 20:16:54 UTC
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number:         7.0.86.0
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name:               Windows 7
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version:            6.1
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture:          amd64
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Java Home:             C:\Program Files\Java\jre1.8.0_171
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version:           1.8.0_171-b11
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor:            Oracle Corporation
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE:         D:\Users\Administrator.XTM-01702051609\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME:         D:\下载\apache-tomcat-7.0.86
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.base=D:\Users\Administrator.XTM-01702051609\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.home=D:\下载\apache-tomcat-7.0.86
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dwtp.deploy=D:\Users\Administrator.XTM-01702051609\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.endorsed.dirs=D:\下载\apache-tomcat-7.0.86\endorsed
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dfile.encoding=GBK
十一月 09, 2018 6:36:27 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_171\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_171/bin/server;C:/Program Files/Java/jre1.8.0_171/bin;C:/Program Files/Java/jre1.8.0_171/lib/amd64;d:\app\Administrator\product\11.2.0\dbhome_1\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;D:\下载\Toad for Oracle 12.1;C:\Program Files\Java\jdk1.7.0_80\bin;C:\Program Files\Java\jdk1.7.0_80\jre\bin;D:\下载\eclipse;;.
十一月 09, 2018 6:36:27 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
十一月 09, 2018 6:36:28 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
十一月 09, 2018 6:36:28 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1596 ms
十一月 09, 2018 6:36:28 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
十一月 09, 2018 6:36:28 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.86
十一月 09, 2018 6:36:34 下午 org.apache.catalina.startup.TldConfig execute
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
十一月 09, 2018 6:36:35 下午 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
警告: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [1,628] milliseconds.
十一月 09, 2018 6:36:48 下午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://velocity.apache.org/velocity-view is already defined
十一月 09, 2018 6:36:48 下午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://velocity.apache.org/velocity-view is already defined
十一月 09, 2018 6:36:49 下午 org.apache.catalina.startup.TldConfig execute
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
2018-11-09 18:36:49,835 [INFO][org.nutz.mvc.NutFilter] - NutFilter[nutz] starting ...
2018-11-09 18:36:50,542 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz Version : 1.r.65 
2018-11-09 18:36:50,543 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is initializing ...
2018-11-09 18:36:50,606 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -  > scan 'com.hfits'
2018-11-09 18:36:52,130 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'baseAction                              ' - com.hfits.common.action.BaseAction
2018-11-09 18:36:52,133 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'logInterceptor                          ' - com.hfits.common.aop.LogInterceptor
2018-11-09 18:36:52,140 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'baseService                             ' - com.hfits.common.service.BaseService
2018-11-09 18:36:52,147 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'comUtil                                 ' - com.hfits.modules.com.comUtil
2018-11-09 18:36:52,155 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'demoAction                              ' - com.hfits.modules.compt.chart.DemoAction
2018-11-09 18:36:52,163 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'editorAction                            ' - com.hfits.modules.compt.editor.EditorAction
2018-11-09 18:36:52,177 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'editorService                           ' - com.hfits.modules.compt.editor.service.EditorService
2018-11-09 18:36:52,181 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'startSet                                ' - com.hfits.modules.compt.editor.StartSet
2018-11-09 18:36:52,185 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'formAction                              ' - com.hfits.modules.compt.form.FormAction
2018-11-09 18:36:52,194 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'formInitUtil                            ' - com.hfits.modules.compt.form.util.FormInitUtil
2018-11-09 18:36:52,195 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'yYFormAction                            ' - com.hfits.modules.compt.form.YYFormAction
2018-11-09 18:36:52,202 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'weiXinJob                               ' - com.hfits.modules.compt.qyhgl.job.WeiXinJob
2018-11-09 18:36:52,203 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sys_qyhglService                        ' - com.hfits.modules.compt.qyhgl.service.Sys_qyhglService
2018-11-09 18:36:52,207 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sys_qyhglAction                         ' - com.hfits.modules.compt.qyhgl.Sys_qyhglAction
2018-11-09 18:36:52,208 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'database_backupAction                   ' - com.hfits.modules.compt.sjkbf.Database_backupAction
2018-11-09 18:36:52,210 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'oracleDatabaseBackupJob                 ' - com.hfits.modules.compt.sjkbf.job.OracleDatabaseBackupJob
2018-11-09 18:36:52,220 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'displayBlob                             ' - com.hfits.modules.global.DisplayBlob
2018-11-09 18:36:52,221 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'downloadFile                            ' - com.hfits.modules.global.DownloadFile
2018-11-09 18:36:52,225 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'qRCode                                  ' - com.hfits.modules.global.QRCode
2018-11-09 18:36:52,226 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'systemHelp                              ' - com.hfits.modules.global.SystemHelp
2018-11-09 18:36:52,227 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'uploader                                ' - com.hfits.modules.global.Uploader
2018-11-09 18:36:52,230 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'verificationCode                        ' - com.hfits.modules.global.VerificationCode
2018-11-09 18:36:52,239 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'dmjService                              ' - com.hfits.modules.sjygl.service.DmjService
2018-11-09 18:36:52,240 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 't_daimjbAction                          ' - com.hfits.modules.sjygl.T_daimjbAction
2018-11-09 18:36:52,243 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 't_dmjflAction                           ' - com.hfits.modules.sjygl.T_dmjflAction
2018-11-09 18:36:52,251 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'baseAjaxAction                          ' - com.hfits.modules.sys.ajax.BaseAjaxAction
2018-11-09 18:36:52,262 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'buttonAction                            ' - com.hfits.modules.sys.config.ButtonAction
2018-11-09 18:36:52,265 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'csglAction                              ' - com.hfits.modules.sys.config.CsglAction
2018-11-09 18:36:52,268 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'ftpConfigAction                         ' - com.hfits.modules.sys.config.FtpConfigAction
2018-11-09 18:36:52,275 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sys_upload_configAction                 ' - com.hfits.modules.sys.config.Sys_upload_configAction
2018-11-09 18:36:52,276 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'indexAction                             ' - com.hfits.modules.sys.IndexAction
2018-11-09 18:36:52,278 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'loginAction                             ' - com.hfits.modules.sys.LoginAction
2018-11-09 18:36:52,280 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'regAction                               ' - com.hfits.modules.sys.RegAction
2018-11-09 18:36:52,290 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'resourceAction                          ' - com.hfits.modules.sys.ResourceAction
2018-11-09 18:36:52,292 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'roleAction                              ' - com.hfits.modules.sys.RoleAction
2018-11-09 18:36:52,296 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'safeAction                              ' - com.hfits.modules.sys.SafeAction
2018-11-09 18:36:52,297 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'resourceService                         ' - com.hfits.modules.sys.service.ResourceService
2018-11-09 18:36:52,298 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'roleService                             ' - com.hfits.modules.sys.service.RoleService
2018-11-09 18:36:52,299 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sysBaseService                          ' - com.hfits.modules.sys.service.SysBaseService
2018-11-09 18:36:52,300 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'unitService                             ' - com.hfits.modules.sys.service.UnitService
2018-11-09 18:36:52,303 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'userService                             ' - com.hfits.modules.sys.service.UserService
2018-11-09 18:36:52,313 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sys_zlglAction                          ' - com.hfits.modules.sys.Sys_zlglAction
2018-11-09 18:36:52,314 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'testJob                                 ' - com.hfits.modules.sys.task.job.TestJob
2018-11-09 18:36:52,315 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'quartzExecute                           ' - com.hfits.modules.sys.task.quartz.QuartzExecute
2018-11-09 18:36:52,318 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sysLoadTask                             ' - com.hfits.modules.sys.task.quartz.SysLoadTask
2018-11-09 18:36:52,321 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sys_JobTaskAction                       ' - com.hfits.modules.sys.task.Sys_JobTaskAction
2018-11-09 18:36:52,323 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'testAction                              ' - com.hfits.modules.sys.TestAction
2018-11-09 18:36:52,326 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'unitAction                              ' - com.hfits.modules.sys.UnitAction
2018-11-09 18:36:52,329 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'userAction                              ' - com.hfits.modules.sys.UserAction
2018-11-09 18:36:52,332 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'userLogAction                           ' - com.hfits.modules.sys.UserLogAction
2018-11-09 18:36:52,333 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'mergeUtilts                             ' - com.hfits.modules.sys.utils.MergeUtilts
2018-11-09 18:36:52,333 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sys_wxmsgService                        ' - com.hfits.modules.sys.utils.wx.Sys_wxmsgService
2018-11-09 18:36:52,334 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'wxMessage                               ' - com.hfits.modules.sys.utils.wx.WxMessage
2018-11-09 18:36:52,343 [INFO][org.nutz.ioc.impl.NutIoc] - ... NutIoc init complete
2018-11-09 18:36:52,358 [INFO][org.nutz.mvc.impl.NutLoading] - Build URL mapping by com.hfits.core.UrlMappingSet ...
License file instal successfully!
License file verify successfully!
2018-11-09 18:36:56,333 [INFO][org.nutz.dao.jdbc.Jdbcs] - Get Connection from DataSource for JdbcExpert, if you lock at here, check your database server and configure
2018-11-09 18:36:57,314 [INFO][com.alibaba.druid.pool.DruidDataSource] - {dataSource-1} inited
2018-11-09 18:36:57,792 [INFO][org.nutz.mvc.impl.processor.ModuleProcessor] - Create Module obj without Ioc --> class com.hfits.modules.compt.form.util.YYFormUtil
2018-11-09 18:36:57,802 [ERROR][org.nutz.mvc.impl.NutLoading] - Error happend during start serivce!
org.nutz.lang.born.BorningException: Fail to born or cast to 'org.nutz.dao.Dao'
 by args: []
 because: No suitable Constructor or Factory Method!!
	at org.nutz.lang.Mirror.getBorning(Mirror.java:967)
	at org.nutz.mvc.adaptor.injector.ObjectPairInjector.<init>(ObjectPairInjector.java:39)
	at org.nutz.mvc.adaptor.PairAdaptor.evalInjectorBy(PairAdaptor.java:57)
	at org.nutz.mvc.adaptor.AbstractAdaptor.evalInjector(AbstractAdaptor.java:218)
	at org.nutz.mvc.adaptor.AbstractAdaptor.init(AbstractAdaptor.java:157)
	at org.nutz.mvc.adaptor.AbstractAdaptor.init(AbstractAdaptor.java:78)
	at org.nutz.mvc.impl.processor.AdaptorProcessor.evalHttpAdaptor(AdaptorProcessor.java:38)
	at org.nutz.mvc.impl.processor.AdaptorProcessor.init(AdaptorProcessor.java:20)
	at org.nutz.mvc.impl.NutActionChainMaker.eval(NutActionChainMaker.java:38)
	at org.nutz.mvc.impl.UrlMappingImpl.add(UrlMappingImpl.java:54)
	at com.hfits.core.UrlMappingSet.add(UrlMappingSet.java:27)
	at org.nutz.mvc.impl.NutLoading.evalUrlMapping(NutLoading.java:205)
	at org.nutz.mvc.impl.NutLoading.load(NutLoading.java:108)
	at org.nutz.mvc.ActionHandler.<init>(ActionHandler.java:19)
	at org.nutz.mvc.NutFilter._init(NutFilter.java:91)
	at org.nutz.mvc.NutFilter.init(NutFilter.java:69)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4981)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5683)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1702)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1692)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
2018-11-09 18:36:57,807 [ERROR][org.nutz.mvc.impl.NutLoading] - try to depose ioc
2018-11-09 18:36:57,811 [INFO][org.nutz.ioc.impl.NutIoc] - org.nutz.ioc.impl.NutIoc@1200242193 is closing. startup date [18-11-09 18:36:52.340]
2018-11-09 18:36:57,854 [INFO][com.alibaba.druid.pool.DruidDataSource] - {dataSource-1} closed
2018-11-09 18:36:57,854 [INFO][org.nutz.ioc.impl.NutIoc] - org.nutz.ioc.impl.NutIoc@1200242193 is deposed. startup date [18-11-09 18:36:52.340]
十一月 09, 2018 6:36:57 下午 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter nutz
org.nutz.mvc.LoadingException: org.nutz.lang.born.BorningException: Fail to born or cast to 'org.nutz.dao.Dao'
 by args: []
 because: No suitable Constructor or Factory Method!!
	at org.nutz.mvc.LoadingException$FC$9a86caf9ff5d3b587784fcdf555a4a7d.invoke(LoadingException.java)
	at org.nutz.lang.born.AbstractConstructorBorning.call(AbstractConstructorBorning.java:25)
	at org.nutz.lang.born.ConstructorBorning.born(ConstructorBorning.java:19)
	at org.nutz.lang.born.BornContext.doBorn(BornContext.java:60)
	at org.nutz.lang.Mirror.born(Mirror.java:1010)
	at org.nutz.lang.Lang.wrapThrow(Lang.java:201)
	at org.nutz.mvc.impl.NutLoading.load(NutLoading.java:135)
	at org.nutz.mvc.ActionHandler.<init>(ActionHandler.java:19)
	at org.nutz.mvc.NutFilter._init(NutFilter.java:91)
	at org.nutz.mvc.NutFilter.init(NutFilter.java:69)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4981)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5683)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1702)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1692)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.nutz.lang.born.BorningException: Fail to born or cast to 'org.nutz.dao.Dao'
 by args: []
 because: No suitable Constructor or Factory Method!!
	at org.nutz.lang.Mirror.getBorning(Mirror.java:967)
	at org.nutz.mvc.adaptor.injector.ObjectPairInjector.<init>(ObjectPairInjector.java:39)
	at org.nutz.mvc.adaptor.PairAdaptor.evalInjectorBy(PairAdaptor.java:57)
	at org.nutz.mvc.adaptor.AbstractAdaptor.evalInjector(AbstractAdaptor.java:218)
	at org.nutz.mvc.adaptor.AbstractAdaptor.init(AbstractAdaptor.java:157)
	at org.nutz.mvc.adaptor.AbstractAdaptor.init(AbstractAdaptor.java:78)
	at org.nutz.mvc.impl.processor.AdaptorProcessor.evalHttpAdaptor(AdaptorProcessor.java:38)
	at org.nutz.mvc.impl.processor.AdaptorProcessor.init(AdaptorProcessor.java:20)
	at org.nutz.mvc.impl.NutActionChainMaker.eval(NutActionChainMaker.java:38)
	at org.nutz.mvc.impl.UrlMappingImpl.add(UrlMappingImpl.java:54)
	at com.hfits.core.UrlMappingSet.add(UrlMappingSet.java:27)
	at org.nutz.mvc.impl.NutLoading.evalUrlMapping(NutLoading.java:205)
	at org.nutz.mvc.impl.NutLoading.load(NutLoading.java:108)
	... 15 more

十一月 09, 2018 6:36:57 下午 org.apache.catalina.core.StandardContext startInternal
严重: One or more Filters failed to start. Full details will be found in the appropriate container log file
十一月 09, 2018 6:36:57 下午 org.apache.catalina.core.StandardContext startInternal
严重: Context [/hfits] startup failed due to previous errors
十一月 09, 2018 6:36:57 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesJdbc
严重: The web application [/hfits] registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
十一月 09, 2018 6:36:57 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesJdbc
严重: The web application [/hfits] registered the JDBC driver [oracle.jdbc.driver.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
十一月 09, 2018 6:36:57 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
十一月 09, 2018 6:36:57 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
十一月 09, 2018 6:36:57 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 29917 ms

15 回复

入口方法声明了一个dao参数??? 是老版本升级上来的吗?

var ioc = {
	conf : {
        type : "org.nutz.ioc.impl.PropertiesProxy",
        fields : {
            paths : ["config/ioc/datasource.properties"]
        }
    },
	default:{
		type:"com.alibaba.druid.pool.DruidDataSource",
		events:{
			depose:"close"
		},
		fields:{
			/* 数据库基本信息配置  ,*/
			url:{java :"$conf.get('url-default')"},
			username:{java :"$conf.get('username-default')"},
			password:{java :"$conf.get('password-default')"},
			/*初始化连接数量*/ 
			initialSize:5,
			/*最大并发连接数*/
			maxActive:5,
			/*超过时间限制是否回收*/
			removeAbandoned:true,
			/* 超时时间;单位为秒。180秒=3分钟 */ 
			removeAbandonedTimeout:2,
			/* 关闭abanded连接时输出错误日志 */
			logAbandoned:true,   
			/*配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒*/
			timeBetweenEvictionRunsMillis:600000,
			/*用来检测连接是否有效的sql,要求是一个查询语句*/
			validationQuery:'SELECT COUNT(*) FROM SYS_DBTEST',
			/*testWhileIdle:建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于 timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。*/
			testWhileIdle:true,
			/*testOnBorrow:申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。*/
			testOnBorrow:false,
			/*testOnReturn:归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能*/
			testOnReturn:false,
			/*属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有: 监控统计用的filter:stat  日志用的filter:log4j  防御SQL注入的filter:wall*/
			filters:"stat"
		}
	},
	dao : {/*dao为默认数据源名称,不允许修改*/
		type : "org.nutz.dao.impl.NutDao",
		args : [{refer:'default'}]
	}
}

不是不是, 这是有标注@At方法的方法, 它有个Dao参数,导致的

在哪个文件?

 *
 */
@IocBean
@At("/private/formyy")
@Filters({ @By(type = GlobalsFilter.class),@By(type = UserLoginFilter.class) })
public class YYFormAction extends BaseAction {
	public static Hashtable<String, Form_def> formdefMap = new Hashtable<String, Form_def>();//下一步时自定义表单信息存放在内存中
	public static String url="/private/formyy/topreview?defid=@defid&mainid=@mainid";

	@Inject
	protected Dao dao;

这里有问题吗

package com.hfits.modules.compt.form.util;


import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import javax.servlet.http.HttpServletRequest;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import org.nutz.trans.Atom;
import org.nutz.trans.Trans;

import com.hfits.common.dao.ObjectCtl;
import com.hfits.common.util.DateUtil;
import com.hfits.common.util.EmptyUtils;
import com.hfits.common.util.StringUtils;
import com.hfits.modules.compt.form.bean.File_info;
import com.hfits.modules.compt.form.bean.Form_field;
import com.hfits.modules.compt.form.bean.Form_table;
import com.hfits.modules.compt.form.code.ControlType;
import com.hfits.modules.sys.bean.Sys_user;

/**
 *
 *  #(c) IFlytek cform <br/>
 *
 *  版本说明: $id:$ <br/>
 *
 *  功能说明: 表单管理类
 *
 *  修改历史:<br/>
 *
 */
public class YYFormUtil {
	public static String url="/private/formyy/topreview?defid=@defid&mainid=@mainid";
	public static String yytableid="";//主键id
	public static String primaryKey="";//主键id
	public static Map<String,String> getOptionsMap(String options,String sp1,String sp2){
		Map<String,String> map = new HashMap<String, String>();
		if(EmptyUtils.isNotEmpty(options)){
			String[] ss=options.split(sp1);
			for (String str : ss) {
				String[] strs=str.split(sp2);
				if(strs.length==2){
					map.put(strs[1], strs[0]);
				}else{
					map.put(str, str);
				}
			}
		}
		return map;
	}
	public static Map<String,Object> getParams(HttpServletRequest req){
		Map<String, Object> params = new HashMap<String, Object>();
		Enumeration paramNames = req.getParameterNames();
		while (paramNames.hasMoreElements()) {
			String paramName = (String) paramNames.nextElement();
			if(paramName.equals("status")){//状态保留字段
				params.put(paramName, req.getParameter(paramName));
				continue;
			}
			String[] paramValues = req.getParameterValues(paramName);
			if (paramValues.length >= 1) {
				String paramValue="";
				for (int i = 0; i < paramValues.length; i++) {
					paramValue=paramValue+paramValues[i]+"☆";
				}
				paramValue=paramValue.substring(0,paramValue.length()-1);
				params.put(paramName, paramValue);
			}
			
		}
		return params;
	}

	/**
	 * 功能描述:表单管理新增页面
	 *
	 *
	 */
	public static boolean add(final ObjectCtl daoCtl,final Dao dao,final HttpServletRequest req,final Sys_user user,final Map paramMap,final  int formdefid) {
		final ThreadLocal<Boolean> re = new ThreadLocal<Boolean>();
		try {
			Trans.exec(new Atom() {
				public void run() {
					if (formdefid>0) {
						String lognote="";
						String main_zhujian="";//主表主键
						
						//获取页面参数和值
						Map<String, String> map = new HashMap<String, String>();
						Enumeration paramNames = req.getParameterNames();
						while (paramNames.hasMoreElements()) {
							String paramName = (String) paramNames.nextElement();
							String[] paramValues = req.getParameterValues(paramName);
							if (paramValues.length >= 1) {
								String paramValue="";
								for (int i = 0; i < paramValues.length; i++) {
									paramValue=paramValue+paramValues[i]+"☆";
								}
								paramValue=paramValue.substring(0,paramValue.length()-1);
								map.put(paramName, paramValue);
							}
						}
						System.out.println("获取页面的状态值"+map.get("status"));
						
						//获取form_table表信息
						List<Form_table> tableList=daoCtl.list(dao, Form_table.class, Sqls.create("select * from form_table where formdefid="+formdefid+" order by ismain desc"));
						if (tableList.size()>0) {
							for (Form_table table :tableList) {

								//获取表名
								String tablename=FormInitUtil.TABLE_PRE_NAME+table.getTablekey();

								//判断表是否已经创建
								boolean is_create=dao.exists(tablename);
								if (is_create) {
									int datasize=0;//数据数量
									String isprimary="";//主键字段
									String foreignkey="";//外键字段
									String field_qz="";
									String primarykeyvalue="";//主键值

									List<Map<String,String>> list=new ArrayList<Map<String,String>>();

									//是否是主表
									if (table.getIsmain()==1) {
										String zjsql="SELECT sys_guid() FROM dual";
										main_zhujian=daoCtl.getStrRowValue(dao, Sqls.create(zjsql));
									}else{
										field_qz=table.getTablekey()+".";
									}
									Map<String,String> fieldMap=new HashMap<String,String>();
									fieldMap.put(".table", tablename);

									String fieldSql="select * from form_field where status=0 and tableid= "+table.getTableid();
									List<Form_field> fieldList=daoCtl.list(dao, Form_field.class, Sqls.create(fieldSql));
									fieldSql="select fieldname,controltype from form_field where status=0 and tableid= "+table.getTableid();
									Hashtable<String, String> controltypeHT=daoCtl.getHTable(dao, Sqls.create(fieldSql)); 
									for (Form_field field : fieldList) {
										if(field.getIsprimary()==1){
											isprimary=field.getFieldname();
										}

										if (EmptyUtils.isNotEmpty(field.getForeignkey())) {
											foreignkey=field.getFieldname();
										}

										if (paramMap.containsKey(field_qz+field.getFieldname())&&
												!(ControlType.attachement.toString()).equals(field.getControltype())&&
												!(ControlType.userphoto.toString()).equals(field.getControltype())) {
											String fieldvalue=StringUtils.null2String(paramMap.get(field_qz+field.getFieldname()));
											//是否是文件上传框paramMap
											//if (field.getControltype()==15 || field.getControltype()==20) {
											///	fieldMap=saveFile(daoCtl,dao,field,fieldMap,paramMap,field_qz);
											//}else{
												fieldMap.put(field.getFieldname(), fieldvalue);
											//}

											//保存临时数据数量
											String[] dd=fieldvalue.split("☆");
											if (datasize<dd.length) {
												datasize=dd.length;
											}

										}else{
											fieldMap.put(field.getFieldname(), "");
										}

									}

									//封装数据插入数据库
									for (int i = 0; i < datasize; i++) {
										Map<String,String> sd=new HashMap<String,String>();
										if(EmptyUtils.isNotEmpty(isprimary)){
											if (table.getIsmain()==1) {//主表
												primarykeyvalue=main_zhujian;
											}else{
												primarykeyvalue= daoCtl.getStrRowValue(dao, Sqls.create("SELECT sys_guid() FROM dual"));
											}
										}
										for (Map.Entry<String, String> zd : fieldMap.entrySet()) {
											String key=zd.getKey();
											String value=StringUtils.null2String(zd.getValue());
											if ("15".equals(controltypeHT.get(key))||"20".equals(controltypeHT.get(key))) {
												//fieldMap=saveFile(daoCtl,dao,fieldList.get(i),fieldMap,paramMap,field_qz);
												YYFormUtil.saveFile(daoCtl,dao,key, map, field_qz, tablename, primarykeyvalue);
												sd.put(key, "");
											}else{
												if (value.indexOf("☆")!=-1) {
													String[] dd=value.split("☆");
													if ((i+1)>dd.length) {
														sd.put(key, "");
													}else{
														sd.put(key, dd[i]);
													}
												}else{
													sd.put(key, value);
												}
											}
											
										}
										sd.put(isprimary, primarykeyvalue);
										if (EmptyUtils.isNotEmpty(foreignkey)) {
											sd.put(foreignkey, main_zhujian);
										}
//										lognote+=SysLogUtil.getLogNoteForm(sd, table.getTableid()+"","add");
										dao.insert(sd);
									}
								}else{
									re.set(false);
									break;
								}
							}
						}
						re.set(true);
						String formname=daoCtl.getStrRowValue(dao, Sqls.create("select formtitle from form_def where defid='"+formdefid+"'"));
//						SysLogUtil.addLog(dao, user.getLoginname(), SysLogUtil.gtyx_log_type, true, 1,
//								"增加表单【"+ formname +"】", formname, lognote,
//								StringUtils.null2String(paramMap.get("log.xgyy")), StringUtils.null2String(paramMap.get("log.xgyj")),url.replace("@defid", formdefid+"").replace("@mainid", main_zhujian));
					}else{
						re.set(false);
					}
				}
			});

		} catch (Exception e) {
			re.set(false);
			e.printStackTrace();
		}
		return re.get();
	}

	/**
	 * 功能描述:表单管理修改页面
	 *
	 * @author (☆笑死宝宝了☆)  2016年2月25日 上午10:32:03
	 *
	 * @param req
	 * @param defid
	 * @param mainid 主表id
	 */
	public static String toupdate(ObjectCtl daoCtl,Dao dao,HttpServletRequest req,@Param("defid") String defid,@Param("mainid") String mainid) {
		try {
			req.setAttribute("formdefid", defid);
			String restr=FormInitUtil.formHtmlMap.get(defid+"_update");

			Document doc=Jsoup.parse(restr);
			/**
			 * 查询主表主键字段名称
			 */
			String  zhujian_field="";
			List<Form_table> tableList=daoCtl.list(dao, Form_table.class, Sqls.create("select * from form_table where formdefid="+defid+" order by ismain desc"));
			if (tableList.size()>0) {
				for (Form_table table :tableList) {
					//获取表名
					String tablename=FormInitUtil.TABLE_PRE_NAME+table.getTablekey();
					String filed_qz="";

					//获取编辑数据
					Sql fieldvaluesql=Sqls.create("select * from $table where $id=@id order by $orderby");
					fieldvaluesql.vars().set("table", tablename);
					if (table.getIsmain()==1) {
						//查询主表主键
						Sql mainkeysql=Sqls.create("select  fieldname from form_field where status=0 and tableid=@tableid and ISPRIMARY=1");
						mainkeysql.params().set("tableid", table.getTableid());
						String keyfiled=daoCtl.getStrRowValue(dao, mainkeysql);

						zhujian_field=keyfiled;

						fieldvaluesql.vars().set("id", keyfiled);
						fieldvaluesql.vars().set("orderby", keyfiled);
					}else{
						filed_qz=table.getTablekey()+".";
						//查询子表外键字段
						Sql mainkeysql=Sqls.create("select  fieldname from form_field where status=0 and tableid=@tableid and foreignkey=@foreignkey");
						mainkeysql.params().set("tableid", table.getTableid());
						mainkeysql.params().set("foreignkey", zhujian_field);
						String keyfiled=daoCtl.getStrRowValue(dao, mainkeysql);
						//查询排序字段,默认找第一个
						mainkeysql=Sqls.create("select  fieldname from form_field where status=0 and tableid=@tableid order by location");
						mainkeysql.params().set("tableid", table.getTableid());
						String orderby=daoCtl.getStrRowValue(dao, mainkeysql);

						fieldvaluesql.vars().set("id", keyfiled);
						fieldvaluesql.vars().set("orderby", orderby);
					}

					fieldvaluesql.params().set("id", mainid);
					List<Map> sd=daoCtl.list(dao, fieldvaluesql);
					if(table.getIsmain()==1){
						req.setAttribute("status", sd.get(0).get("status"));
					}
					Sql fieldSql=Sqls.create("select * from form_field where status=0 and tableid=@tableid ");
					fieldSql.params().set("tableid", table.getTableid());
					primaryKey=zhujian_field;
					List<Form_field> fieldList=daoCtl.list(dao, Form_field.class, fieldSql);
					restr=getHtml(daoCtl,dao,table, doc, sd, fieldList,filed_qz,"");

				}
			}
			req.setAttribute("body", restr);
			return restr;
		} catch (Exception e) {
			e.printStackTrace();
			return "";
		}
	}

	/**
	 * 功能描述:表单管理新增页面
	 *
	 *
	 */
	@At
	@Ok("raw")
	public static boolean update(final ObjectCtl daoCtl,final Dao dao,final HttpServletRequest req,final Sys_user user,final Map map,final @Param("formdefid") int formdefid,final @Param("status")int status,final File_info file) {
		final ThreadLocal<Boolean> re = new ThreadLocal<Boolean>();
		try {
			Trans.exec(new Atom() {
				public void run() {
					String lognote="";
					//获取页面参数和值
					Map<String, String> map = new HashMap<String, String>();
					Enumeration paramNames = req.getParameterNames();
					while (paramNames.hasMoreElements()) {
						String paramName = (String) paramNames.nextElement();
						String[] paramValues = req.getParameterValues(paramName);
						if (paramValues.length >= 1) {
							String paramValue="";
							for (int i = 0; i < paramValues.length; i++) {
								//此处来将状态值存入map
								if(paramName.equals("status")){
									paramValue=status+"☆";
								}else{
									paramValue=paramValue+paramValues[i]+"☆";
								}
							}
							paramValue=paramValue.substring(0,paramValue.length()-1);
							map.put(paramName, paramValue);
						}
					}
					String mainid="";//主表主键值

					//获取form_table表信息
					List<Form_table> tableList=daoCtl.list(dao, Form_table.class, Sqls.create("select * from form_table where formdefid="+formdefid+" order by ismain desc"));
					if (tableList.size()>0) {
						for (Form_table table :tableList) {
							String filed_qz="";
							//获取表名
							String tablename=FormInitUtil.TABLE_PRE_NAME+table.getTablekey();
							//需要更新的数据
							Map<String,Object> fieldMap=new HashMap<String,Object>();
							fieldMap.put(".table", tablename);
							//查询表字段
							Sql fieldSql=Sqls.create("select * from form_field where status=0 and tableid=@tableid order by isprimary desc,fieldid");
							fieldSql.params().set("tableid", table.getTableid());
							List<Form_field> fieldList=daoCtl.list(dao, Form_field.class, fieldSql);
							fieldSql=Sqls.create("select fieldname,controltype from form_field where status=0 and tableid=@tableid");
							fieldSql.params().set("tableid", table.getTableid());
							Hashtable<String, String> controltypeHT=daoCtl.getHTable(dao, fieldSql); 
							//是否是主表
							if (table.getIsmain()==1) {
								String primary="";
								for (Form_field field : fieldList) {
									if (map.containsKey(filed_qz+field.getFieldname())
											&&!(ControlType.attachement.toString()).equals(field.getControltype())
											&&!(ControlType.userphoto.toString()).equals(field.getControltype())) {
										String fieldvalue=StringUtils.null2String(map.get(filed_qz+field.getFieldname()));
										//临时保存主表 主键id值
										if (field.getIsprimary()==1) {
											mainid=fieldvalue;
											primary=field.getFieldname();
										}
										fieldMap.put(field.getFieldname(), fieldvalue);

									}else if ((ControlType.attachement.toString()).equals(field.getControltype())
											||(ControlType.userphoto.toString()).equals(field.getControltype())) {
										YYFormUtil.saveFile(daoCtl,dao,field.getFieldname(), map, filed_qz, tablename, mainid);
									}else{
										fieldMap.put(field.getFieldname(), "");
									}
								}
								String sqlstr="select * from "+tablename +" where "+primary+"='"+mainid+"'";
								List<Map> oldlist=daoCtl.list(dao, Sqls.create(sqlstr));
//								lognote+=SysLogUtil.getLogNoteForm(oldlist.get(0), fieldMap, table.getTableid()+"");
								dao.update(tablename, Chain.from(fieldMap), Cnd.where(primary,"=",mainid));

							}else{
								int datasize=0;//数据数量
								filed_qz=table.getTablekey()+".";
								//当前表的外键字段
								String fk_name="";
								String primary="";
								String primary_value="";
								//获取子表每条数据信息
								for (Form_field field : fieldList) {
									if (field.getIsprimary()==1) {
										primary=field.getFieldname();
									}
									if (map.containsKey(filed_qz+field.getFieldname())
											&&!(ControlType.attachement.toString()).equals(field.getControltype())
											&&!(ControlType.userphoto.toString()).equals(field.getControltype())) {
										String fieldvalue=StringUtils.null2String(map.get(filed_qz+field.getFieldname()));
										//if (field.getControltype()==15|| field.getControltype()==20) {
										//	fieldMap=saveFile(daoCtl,dao,field,fieldMap,map,filed_qz);
										//}else{
											fieldMap.put(field.getFieldname(), fieldvalue);
										//}

										String[] dd=fieldvalue.split("☆");
										if (datasize<dd.length) {
											datasize=dd.length;
										}
									}else{
										//判断request中没有的值是否是外键字段
										if (EmptyUtils.isNotEmpty(field.getForeignkey())) {
											fieldMap.put(field.getFieldname(), mainid);
											fk_name=field.getFieldname();
										}else{
											fieldMap.put(field.getFieldname(), "");
										}
									}
								}
								if(EmptyUtils.isNotEmpty(primary)){//子表有主键
									//删除不存在的子表数据
									if(null!=map.get(filed_qz+primary)){
										String findin=StringUtils.getStrsplit(StringUtils.null2String(map.get(filed_qz+primary)).split("☆"));
										String sqlstr="select * from "+tablename+" where "+primary+" not in "+findin+" and "+fk_name+"='"+mainid+"'";
										List<Map> oldlist=daoCtl.list(dao, Sqls.create(sqlstr));
										if(oldlist.size()>0){
											sqlstr="delete from "+tablename+" where "+primary+" not in "+findin+" and "+fk_name+"='"+mainid+"'";
											Sql delsql=Sqls.create(sqlstr);
											dao.execute(delsql);
//											lognote+=SysLogUtil.getLogNoteForm(oldlist, table.getTableid()+"", "delete");
										}
									}
								}else{//子表无主键,本系统中暂时不做处理

								}

								//封装数据插入或更新到数据库
								for (int i = 0; i < datasize; i++) {
									Map<String,String> sd=new HashMap<String,String>();
									String primarykeyvalue="";
									for (Entry<String, Object> zd : fieldMap.entrySet()) {
										String key=zd.getKey();
										String value=zd.getValue().toString();
										if(EmptyUtils.isEmpty(sd.get(primary))){
											primarykeyvalue= daoCtl.getStrRowValue(dao, Sqls.create("SELECT sys_guid() FROM dual"));
										}else{
											primarykeyvalue=sd.get(primary);
										}
										//增加子表附件
										if ("15".equals(controltypeHT.get(key))||"20".equals(controltypeHT.get(key))) {
											System.out.println("增加子表附件+++++");
											YYFormUtil.saveFile(daoCtl,dao,key, map, filed_qz, tablename, primarykeyvalue);
											value="";
										}
										if (value.indexOf("☆")!=-1) {
											String[] dd=value.split("☆");
											if ((i+1)>dd.length) {
												sd.put(key, "");
											}else{
												sd.put(key, dd[i]);
											}

										}else{
											sd.put(key, value);
										}
									}
									if(EmptyUtils.isNotEmpty(primary)){
										if(EmptyUtils.isEmpty(sd.get(primary))){
											sd.put(primary, daoCtl.getStrRowValue(dao, Sqls.create("SELECT sys_guid() FROM dual")));
											dao.insert(sd);
//											lognote+=SysLogUtil.getLogNoteForm(sd, table.getTableid()+"","add");
										}else{
											String sqlstr="select * from "+tablename +" where "+primary+"='"+sd.get(primary)+"'";
											List<Map> oldlist=daoCtl.list(dao, Sqls.create(sqlstr));
											dao.update(tablename, Chain.from(sd), Cnd.where(primary,"=",sd.get(primary)));
//											lognote+=SysLogUtil.getLogNoteForm(oldlist.get(0), sd, table.getTableid()+"");
										}
									}else{//子表无主键,本系统中暂时不做处理
									}
								}
							}
						}
					}
					String formname=daoCtl.getStrRowValue(dao, Sqls.create("select formtitle from form_def where defid='"+formdefid+"'"));
					//修改证明附件
					if (EmptyUtils.isNotEmpty(file.getFilename()) && EmptyUtils.isNotEmpty(file.getFilepath())) {
						dao.insert(file);
					}
//					SysLogUtil.addLog(dao, user.getLoginname(), SysLogUtil.gtyx_log_type, true, 2,
//							"更新表单【"+ formname +"】", formname, lognote, StringUtils.null2String(map.get("log.xgyy")),
//							StringUtils.null2String(map.get("log.xgyj")),url.replace("@defid", formdefid+"").replace("@mainid", mainid));
					re.set(true);
				}
			});
		} catch (Exception e) {
			re.set(false);
			e.printStackTrace();
		}
		return re.get();
	}


	/**
	 * 功能描述:保存文件到附件表
	 *
	 * @author (☆笑死宝宝了☆)  2016年3月3日 下午2:55:35
	 *
	 */
	public static void saveFile( ObjectCtl daoCtl,final Dao dao,final String fieldname,final Map<String,String> map,final String field_qz,final String tablename,final String tablekey){
		try {
			Trans.exec(new Atom() {
				public void run() {
					String name=field_qz+fieldname;
					String[] names=StringUtils.null2String(map.get(name+"_filename")).split(";");
					String[] paths=StringUtils.null2String(map.get(name+"_filepath")).split(";");
					String[] sizes=StringUtils.null2String(map.get(name+"_filesize")).split(";");
					String[] ids=StringUtils.null2String(map.get(name+"_fileid")).split(";");
					String curtime=DateUtil.getCurDateTime();
					String NDelid="";//保留的附件记录,除此之外均删除
					//附件
					for(int i=0;i<paths.length;i++){
						File_info att = new File_info();
						if(EmptyUtils.isNotEmpty(paths[i])&&EmptyUtils.isNotEmpty(names[i])){
							if(EmptyUtils.isEmpty(ids[i])||" ".equals(ids[i])){
								att.setFilename(names[i]);
								att.setFilepath(paths[i]);
								att.setTablekey(tablekey);
								att.setTablename(tablename);
								att.setCreate_time(curtime);
								att.setFilesize(sizes[i]);
								att.setFieldname(fieldname);
								dao.insert(att);
								NDelid+="'"+att.getId()+"',";
							}else if(!" ".equals(ids[i])){
								NDelid+="'"+ids[i]+"',";
							}
						}
					}
					if(NDelid.length()>1){
						NDelid=NDelid.endsWith(",")?NDelid.substring(0, NDelid.length()-1):NDelid;
						Sql delsql=Sqls.create("delete from file_info where id not in ("+NDelid+") and fieldname=@fieldname and tablekey=@tablekey and tablename=@tablename");
						delsql.params().set("tablename", tablename);
						delsql.params().set("tablekey", tablekey);
						delsql.params().set("fieldname", fieldname);
						System.out.println(delsql.toString());
						dao.execute(delsql);
					}
				}
			});
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	/**
	 * savefile原始
	 * @param str
	 * @return
	 */
	private static Map<String,String> saveFile(final ObjectCtl daoCtl,final Dao dao,final Form_field field,final Map fieldMap,final Map map,final String filed_qz){
		final ThreadLocal<Map<String,String>> re = new ThreadLocal<Map<String,String>>();
		try {
			Trans.exec(new Atom() {
				public void run() {
					String name=filed_qz+field.getFieldname();
					String Newname=field.getFieldname();
					String id=StringUtils.null2String(map.get(name+"_oldvalue"));
					String[] ids=id.split("☆");
					String[] filenames=StringUtils.null2String(map.get(name+"_filename")).split("☆");
					String[] filepaths=StringUtils.null2String(map.get(name+"_filepath")).split("☆");
					String[] filesizes=StringUtils.null2String(map.get(name+"_filesize")).split("☆");
					String reId="";
					for (int i=0;i<containsBy(id)+1;i++) {
						String curId="";
						if (filenames.length>i&&EmptyUtils.isNotEmpty(filenames[i]) && EmptyUtils.isNotEmpty(filepaths[i])) {
							File_info file=new File_info();
							file.setFilename(filenames[i]);
							file.setFilepath(filepaths[i]);
							file.setFilesize(filesizes[i]);
							file.setCreate_time(DateUtil.getCurDateTime());
							//判断ids是否存在
							if (ids.length>0&&EmptyUtils.isNotEmpty(ids[i])) {
								Sql delsql=Sqls.create("delete from file_info where id=@id");
								delsql.params().set("id", ids[i]);
								dao.execute(delsql);
							}
							dao.insert(file);
							curId=file.getId();
						}else{
							if(ids.length>i){
								curId=ids[i];
							}
						}
						if(i==filesizes.length-1){
							reId+=curId;
						}else{
							reId+=curId+"☆";
						}
						
					}
					fieldMap.put(Newname, reId);
					re.set(fieldMap);
				}
			});
		}catch(Exception e){
			re.set(fieldMap);
			e.printStackTrace();

		}

		return re.get();
	}
	
	public static int containsBy(String str){
		int i=0;
		char[] cc=str.toCharArray();
		for (char c : cc) {
			if("☆".equals(c+"")){
				i++;
			}
		}
		return i;
	}
	/**
	 * 功能描述:给标签设置 value值
	 *
	 * @author (☆笑死宝宝了☆)  2016年2月26日 下午5:24:34
	 *
	 */
	private static void setTagValue( ObjectCtl daoCtl,Dao dao,Element el,String value,Form_field field,String tablename,String mainid){
		String clas=el.attr("clas");
		value=StringUtils.null2String(value);
		String nodename=el.nodeName();

		if (("select").equals(nodename)) {
			if ((ControlType.attachement.toString()).equals(field.getControltype())) {//是附件
				List<File_info> fileList=daoCtl.list(dao,File_info.class, Sqls.create("select * from file_info where fieldname='"+field.getFieldname()+"' and tablekey='"+mainid+"' and tablename='"+tablename+"' order by create_time"));
				if (fileList.size()>0) {
					for (File_info file : fileList) {
						String varItem = file.getId()+"|"+file.getFilepath()+"|"+file.getFilesize();
						el.append("<option value='"+varItem+"' selected>"+file.getFilename()+"</option>");
					}
				}else{
					el.attr("value","");
				}
			}else{
				el.attr("selectedvalue", value);//在前台使用js做选中,在preview.js初始中运行
			}
		}else if("input".equals(nodename)){
			String type=el.attr("type").toUpperCase();
			String setvalue=el.attr("value");
			if ("CHECKBOX".equals(type)) {
				if (setvalue.equals(value)) {
					el.attr("checked", "checked");
				}
			}if ("RADIO".equals(type)) {
				if (setvalue.equals(value)) {
					el.attr("checked", "checked");
				}
			}else{
				if ((ControlType.attachement.toString()).equals(field.getControltype())
						||(ControlType.userphoto.toString()).equals(field.getControltype())) {//是附件

					File_info fileinfo=getFileById(daoCtl,dao,value);
					if (EmptyUtils.isNotEmpty(fileinfo)) {
						el.attr("controltype",fileinfo.getFilepath());
						el.parent().select("input[name="+el.attr("name")+"_oldvalue]").attr("value", value);
//						el.after("<input type='hidden' name='"+el.attr("name")+"_oldvalue' value='"+value+"' />");
						el.attr("value",fileinfo.getFilename());
					}else{
						el.attr("value","");
						el.parent().select("input[name="+el.attr("name")+"_oldvalue]").attr("value", "");
					}
				}else if((ControlType.userselector.toString()).equals(field.getControltype())
						||(ControlType.singleuserselector.toString()).equals(field.getControltype())){//信用主体
					if (EmptyUtils.isNotEmpty(value)) {
						String[] valueArry=value.split(",");
						String showValue="";
						for (int i = 0; i < valueArry.length; i++) {
							String xyzt=StringUtils.null2String(FormInitUtil.userMap.get(valueArry[i]));
							showValue=showValue+xyzt+",";

						}
						el.attr("clas","xyzt");
						el.attr("showxyzt",showValue.substring(0,showValue.length()-1));
					}
					el.attr("value",value);
				}else if((ControlType.userunit.toString()).equals(field.getControltype())){//用户所在机构 22?
					if (EmptyUtils.isNotEmpty(value)) {
						Elements el2=el.siblingElements();
						el2.attr("value", FormInitUtil.unitMap.get(value));
					}
					el.attr("value",value);
				}else if((ControlType.currentuser.toString()).equals(field.getControltype())){//当前登录用户登录名
					if (EmptyUtils.isNotEmpty(value)) {
						Elements el2=el.siblingElements();
						el2.attr("value", FormInitUtil.userMap.get(value));
					}
					el.attr("value",value);
				}else{
					el.attr("value",value);
				}

				if (clas.equals("radio")) {
					String radiotext=field.getOptions();
					if (EmptyUtils.isNotEmpty(radiotext)) {
						String[] radioArry=radiotext.split("#newline#");
						for (int i = 0; i < radioArry.length; i++) {
							String text=radioArry[i];
							String[] textArry=text.split("/");
							if(value.equals(textArry[1])){
								value=textArry[0];
							}
						}
					}
					el.attr("selectedtext", value);//在前台使用js做选中,在preview.js初始中运行
				}

			}

		}else if("textarea".equals(nodename)){
			el.append(value);
		}
	}
	
	
	/**
	 * 功能描述:给标签设置 value值,浏览页面使用
	 *
	 * @author (☆笑死宝宝了☆)  2016年2月26日 下午5:24:34
	 *
	 */
	private static void setValue(  ObjectCtl daoCtl,Dao dao,Element el,String value,Form_field field,String tablename,String mainid){
		value=StringUtils.null2String(value);
		Element pel=el.parent();
		String pclass=pel.attr("class");
		if("hidedomain".equals(pclass)){//隐藏域
//			value="";
			el.attr("value", value);
		}else if("textfield".equals(pclass)||"textarea".equals(pclass)||"datepicker".equals(pclass)){//单行文本框||多行文本||日期
			//value=value;不做处理
		}else if("checkbox".equals(pclass)||"radioinput".equals(pclass)){//多选框||单选框
			/*String options=field.getOptions();
			if (EmptyUtils.isNotEmpty(options)) {
				Map<String,String> optionsMap=YYFormUtil.getOptionsMap(options, "#newline#", "/");
				value=optionsMap.get(value);
			}*/
		}else if("selectinput".equals(pclass)){//下拉框
			String loadselect=field.getLoadselect();
			String options=field.getOptions();
			if(EmptyUtils.isNotEmpty(loadselect)){
				if (loadselect.indexOf("☆")!=-1) {//查询自定义表单中数据
					String[] loadSelectArry=loadselect.split("☆");
					Sql sql=Sqls.create("select $fieldvalue from $tablename where $fieldkey=@keyvalue");
					sql.vars().set("fieldvalue", loadSelectArry[2]).set("tablename", "L_"+loadSelectArry[0]).set("fieldkey", loadSelectArry[1]);
					sql.params().set("keyvalue", value);
					value=daoCtl.getStrRowValue(dao, sql);
				}else{
					String sql="select code,name from Cs_value where typeid = '"+loadselect+"'";
					Map<String,String> loadselectMap=daoCtl.getHTable(dao, Sqls.create(sql));
					sql="select code from Cs_value where value='"+value+"' and typeid = '"+loadselect+"'";
					String code=daoCtl.getStrRowValue(dao, Sqls.create(sql));
					int lg=code.length()/4;
					value="";
					for (int j = 1; j <= lg; j++) {
						value+=loadselectMap.get(code.substring(0,j*4))+"/";
					}
					int lg2=value.length()>0?value.length()-1:0;
					value=value.substring(0,lg2);
				}
				
			}else{
				Map<String,String> optionsMap=YYFormUtil.getOptionsMap(options, "#newline#", "/");
				value=optionsMap.get(value);
			}
		}else if("userselector".equals(pclass)){//用户
			if (EmptyUtils.isNotEmpty(value)) {
				String[] valueArry=value.split(",");
				String showValue="";
				for (int i = 0; i < valueArry.length; i++) {
					String xyzt=StringUtils.null2String(FormInitUtil.userMap.get(valueArry[i]));
					showValue=showValue+xyzt+",";
					
				}
				value=showValue.substring(0,showValue.length()-1);
			}
		}else if("attachement".equals(pclass)){//附件
			List<File_info> fileList=daoCtl.list(dao,File_info.class, Sqls.create("select * from file_info where fieldname='"+field.getFieldname()+"' and tablekey='"+mainid+"' and tablename='"+tablename+"' order by create_time"));
			value="";
			for (File_info file : fileList) {
				value+="<a href=\""+file.getFilepath()+"\" target='_blank' >"+file.getFilename()+"</a><br/>";
			}
		}else if("userunit".equals(pclass)||"unitselector".equals(pclass)){//用户所在机构
			if (EmptyUtils.isNotEmpty(value)) {
				value=FormInitUtil.unitMap.get(value);
			}
		}else if("userphoto".equals(pclass)){//用户头像
			Elements imgEl=pel.select("img[fileinputname="+field.getFieldname()+"]");
			imgEl.removeAttr("onclick");
			List<File_info> fileList=daoCtl.list(dao,File_info.class, Sqls.create("select * from file_info where fieldname='"+field.getFieldname()+"' and tablekey='"+mainid+"' and tablename='"+tablename+"' order by create_time"));
			System.out.println("select * from file_info where fieldname='"+field.getFieldname()+"' and tablekey='"+mainid+"' and tablename='"+tablename+"' order by create_time");
			if(fileList.size()>0){
				File_info fileinfo=fileList.get(0);
				value=imgEl.attr("src",fileinfo.getFilepath()).toString();
			}else{
				value=imgEl.toString();
			}
			System.out.println(fileList.size()+"========="+value);
		}else if("currentuser".equals(pclass)){//当前用户登录名称
			
			if (EmptyUtils.isNotEmpty(value)) {
				if("hidden".equals(el.attr("type"))){
					value=StringUtils.null2String(FormInitUtil.userMap.get(String.valueOf(value)));
					el.attr("value", value);
				}
			}
			
		}
		if("checkbox".equals(pclass)||"radioinput".equals(pclass)){
			String[] vals=value.replace(",", ",").split(",");
			Elements tmpEles=el.parent().select("[name="+field.getFieldname()+"_name]");
			for (Element ele : tmpEles) {
				for (String val : vals) {
					if(val.equals(ele.attr("value"))){
						ele.attr("checked", "checked");
					}
				}
				ele.attr("disabled", "disabled");
				ele.attr("name", ele.attr("name")+yytableid);
			}
		}else if("span".equals(el.parent().nodeName())&&!"hidedomain".equals(pclass)){
			el.parent().after(StringUtils.null2String(value));
			el.parent().remove();
		}
	}



	/**
	 * 功能描述:通过
	 *
	 * @author (☆笑死宝宝了☆)  2016年3月3日 下午3:27:51
	 *
	 * @param id
	 * @return
	 */
	private static File_info getFileById(final ObjectCtl daoCtl,final Dao dao,String id){
		Sql sql=Sqls.create("select * from file_info where id=@id");
		sql.params().set("id", id);
		File_info file=daoCtl.detailBySql(dao, File_info.class, sql);
		return file;
	}

	/**
	 * 功能描述:公用  替换页面html标签方法
	 *
	 * @author (☆笑死宝宝了☆)  2016年2月29日 上午9:44:24
	 *
	 * @param table  表实体
	 * @param doc   jsoup 
	 * @param sd    表 数据 
	 * @param fieldList  表字段 
	 * @param type  类型 view查看页面使用,需删除标签
	 * @return
	 */
	public static String getHtml(ObjectCtl daoCtl,Dao dao,Form_table table,Document doc,List<Map> sd,List<Form_field> fieldList,String filed_qz,String type){
		String tablename=FormInitUtil.TABLE_PRE_NAME+table.getTablekey();
		//获取子表的数据格式
		Element subdiv=null;
		Element subtr =null;

		if (table.getIsmain()!=1) {

			subdiv=doc.select("[tablekey="+table.getTablekey()+"]").first();
			//查询子表是否是块级显示
			subtr =subdiv.getElementById("tr_"+table.getTablekey());
			if (EmptyUtils.isNotEmpty(subtr)) {
				doc.getElementById("tr_"+table.getTablekey()).remove();

				/**
				 * 去除子表行级显示的 多选 checkbox 的disabled的属性
				 */
				Elements ckels= subtr.select("[name=ckb_"+table.getTablekey()+"]");
				for (Element ck :ckels) {
					ck.removeAttr("disabled");
				}
			}else{
				subtr =subdiv.getElementById("table_"+table.getTablekey());
				doc.getElementById("table_"+table.getTablekey()).remove();
			}

			if (sd.size()==0) {
				Element el= doc.getElementById("table_"+table.getTablekey());
				if (EmptyUtils.isNotEmpty(el)) {
					doc.getElementById("table_"+table.getTablekey()).child(0).append(subtr.toString());
				}else{
					doc.select("[tablekey="+table.getTablekey()+"]").first().child(0).append(subtr.toString());
				}
			}
		}
		//表数据条数循环
		for (Map hashtable : sd) {
			for (Form_field field : fieldList) {
				yytableid=StringUtils.null2String(hashtable.get(primaryKey));
				if (table.getIsmain()==1) {
					Elements els= doc.select("[name="+field.getFieldname()+"]");
					if (EmptyUtils.isEmpty(els)) {
						doc.body().append("<input type=\"hidden\" name=\""+field.getFieldname()+"\" value=\""+hashtable.get(field.getFieldname())+"\" />");
					}


					for (Element el : els) {
						String value=String.valueOf(hashtable.get(field.getFieldname()));
						if("view".equals(type)){
							setValue(daoCtl,dao,el,value,field,tablename,yytableid);
						}else{
							setTagValue(daoCtl,dao,el,value,field,tablename,yytableid);
						}
					}
				}else{
					Elements els= subtr.select("[name="+filed_qz+field.getFieldname()+"]");
					if (EmptyUtils.isEmpty(els) && field.getIsprimary()==1) {
						subtr.append("<input type=\"hidden\" name=\""+filed_qz+field.getFieldname()+"\" value=\""+hashtable.get(field.getFieldname())+"\" />");
					}

					for (Element el : els) {
						String value=String.valueOf(hashtable.get(field.getFieldname()));
						if("view".equals(type)){
							setValue(daoCtl,dao,el,value,field,tablename,yytableid);
						}else{
							setTagValue(daoCtl,dao,el,value,field,tablename,yytableid);
						}
					}
				}

			}
			//插入子表数据
			if (table.getIsmain()!=1) {
				Element el = doc.getElementById("table_" +table.getTablekey());
				if (EmptyUtils.isNotEmpty(el)) {
					doc.getElementById("table_"+table.getTablekey()).child(0).append(subtr.toString());
				}else{
					doc.select("[tablekey="+table.getTablekey() + "]").first().child(0).append(subtr.toString());
				}

			}
		}

		return doc.body().outerHtml().replaceAll("<body>", "").replaceAll("</body>", "");

	}



	/**
	 * 功能描述:删除表单应用数据
	 *
	 * @author (☆笑死宝宝了☆)  2016年2月29日 下午1:22:51
	 *
	 * @param session
	 * @param req
	 * @param ids
	 * @param defid
	 * @return
	 */
	public static boolean delete(final ObjectCtl daoCtl,final Dao dao,final HttpServletRequest req,final Sys_user user,final String ids,final  String defid) {
		final ThreadLocal<Boolean> re = new ThreadLocal<Boolean>();
		try {
			Trans.exec(new Atom() {
				public void run() {

					String idarry =StringUtils.getStrsplit(ids.split(","));
					Sql sql=Sqls.create("select * from form_table where formdefid=@formdefid and ismain=1 ");
					sql.params().set("formdefid", defid);

					List<Form_table> tableList=daoCtl.list(dao, Form_table.class,sql);
					for (Form_table table : tableList) {
						String tablename=FormInitUtil.TABLE_PRE_NAME+table.getTablekey();

						Sql mainkeysql=Sqls.create("select  fieldname from form_field where status=0 and tableid=@tableid and ISPRIMARY=1");
						mainkeysql.params().set("tableid", table.getTableid());
						String keyfiled=daoCtl.getStrRowValue(dao, mainkeysql);

						String sqlstr="";
						String temsql="select count(1) from form_field where status=0 and fieldname='status' and tableid="+table.getTableid();
						int i=daoCtl.getIntRowValue(dao, Sqls.create(temsql));
						if(i==0){
							sqlstr="delete from $tablename where $id in "+idarry;
						}else{
							sqlstr="update $tablename set status=-1 where $id in "+idarry;
						}
						Sql delsql=Sqls.create(sqlstr);
						delsql.vars().set("tablename", tablename);
						delsql.vars().set("id", keyfiled);
						dao.execute(delsql);
					}
					String formname=daoCtl.getStrRowValue(dao, Sqls.create("select formtitle from form_def where defid='"+defid+"'"));
//					SysLogUtil.addLog(dao, user.getLoginname(), SysLogUtil.gtyx_log_type, true, 3,
//							"删除表单【"+ formname +"】,ID:"+ids, formname, "",
//							req.getParameter("log.xgyy"), req.getParameter("log.xgyj"),url.replace("@defid", defid+"").replace("@mainid", ids));
					re.set(true);
				}
			});

		} catch (Exception e) {
			re.set(false);
			e.printStackTrace();
		}
		return re.get();
	}
	public static String topreview(ObjectCtl daoCtl,Dao dao,String defid,String mainid) {
		String restr="";
		try {
			System.out.println(defid);
			Document doc=Jsoup.parse(FormInitUtil.formHtmlMap.get(defid+"_view"));
			Element script=doc.select("script").first();
			String scriptDoc="";
			if(EmptyUtils.isNotEmpty(script)){
				script.remove();
				scriptDoc=script.outerHtml();
			}
			String[] mainids=mainid.replaceAll(",", ",").split(",");
			for (String id : mainids) {
				restr+=getViewById(daoCtl, dao,doc.toString(),defid, id);
			}
			if(EmptyUtils.isNotEmpty(scriptDoc)){
				restr=restr+scriptDoc;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return  restr;
	
	}
	public static String getViewById(ObjectCtl daoCtl,Dao dao,String docString,String defid,String mainid) {
		String restr="";
		try {
			Document doc=Jsoup.parse(docString);
			/**
			 * 查询主表主键字段名称
			 */
			String  zhujian_field="";
			List<Form_table> tableList=daoCtl.list(dao, Form_table.class, Sqls.create("select * from form_table where formdefid="+defid+" order by ismain desc"));
			if (tableList.size()>0) {
				for (Form_table table :tableList) {
					//获取表名
					String tablename=FormInitUtil.TABLE_PRE_NAME+table.getTablekey();
					String filed_qz="";
					//获取表中的所有字段
					Sql fieldnamesql=Sqls.create("select fieldname from form_field where status=0 and tableid=@tableid");
					fieldnamesql.params().set("tableid", table.getTableid());

					//获取编辑数据
					Sql fieldvaluesql=Sqls.create("select * from $table where $id=@id");
					fieldvaluesql.vars().set("table", tablename);
					if (table.getIsmain()==1) {
						//查询主表主键
						Sql mainkeysql=Sqls.create("select  fieldname from form_field where status=0 and tableid=@tableid and ISPRIMARY=1");
						mainkeysql.params().set("tableid", table.getTableid());
						String keyfiled=daoCtl.getStrRowValue(dao, mainkeysql);

						zhujian_field=keyfiled;

						fieldvaluesql.vars().set("id", keyfiled);
					}else{
						filed_qz=table.getTablekey()+".";
						//查询子表外键字段
						Sql mainkeysql=Sqls.create("select  fieldname from form_field where status=0 and tableid=@tableid and foreignkey=@foreignkey");
						mainkeysql.params().set("tableid", table.getTableid());
						mainkeysql.params().set("foreignkey", zhujian_field);
						String keyfiled=daoCtl.getStrRowValue(dao, mainkeysql);

						fieldvaluesql.vars().set("id", keyfiled);
					}

					fieldvaluesql.params().set("id", mainid);
					
					List<Map> sd=daoCtl.list(dao, fieldvaluesql);
					Sql fieldSql=Sqls.create("select * from form_field where status=0 and tableid=@tableid ");
					fieldSql.params().set("tableid", table.getTableid());
					primaryKey=zhujian_field;
					List<Form_field> fieldList=daoCtl.list(dao, Form_field.class, fieldSql);


					restr=getHtml(daoCtl,dao,table, doc, sd, fieldList,filed_qz,"view");

				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return  restr;

	}
	public static String getOrderIdSql(String defid,String mainid){
		return "select orderid from "+FormInitUtil.formTabKeyMap.get(defid)+" where "+FormInitUtil.formPrimKeyMap.get(defid)+"='"+mainid+"'";
	}
	
	public static List<Map> getValueForList(ObjectCtl daoCtl,Dao dao,List<Map> list,String tableid){
		String sqlstr="select fieldname,controltype,options,loadselect,isprimary from form_field where status=0 and ( controltype in (3,4,5,7,8,19,21,22) or isprimary=1) and tableid="+tableid;
		List<Map> controlList=daoCtl.list(dao, Sqls.create(sqlstr));
		String isprimary="";
		for (Map map : controlList) {
			String primarykey=StringUtils.null2String(map.get("isprimary"));
			int controltype=StringUtils.StringToInt(StringUtils.null2String(map.get("controltype")));
			String fieldname=StringUtils.null2String(map.get("fieldname"));
			if ("1".equals(primarykey)) {
				isprimary=fieldname;
				continue;
			}
			
			for (Map pageMap : list) {
				String value=StringUtils.null2String(pageMap.get(fieldname));
				if(controltype==3){//多选框
					String options=StringUtils.null2String(map.get("options"));
					Map<String,String> optionsMap=YYFormUtil.getOptionsMap(options, "#newline#", "/");
					String[] values=value.split(",");
					value="";
					for (String val : values) {
						value+=optionsMap.get(val)+";";
					}
					value=value.substring(0,value.lastIndexOf(";"));
				}else if(controltype==5||controltype==4){//下拉框或单选框
					String loadselect=StringUtils.null2String(map.get("loadselect"));
					String options=StringUtils.null2String(map.get("options"));
					if(EmptyUtils.isNotEmpty(loadselect)){
						String sql="select value,name from Cs_value where typeid = '"+loadselect+"'";
						if(controltype==5){//下拉框
							if (loadselect.indexOf("☆")!=-1) {//查询自定义表单中数据
								String[] loadSelectArry=loadselect.split("☆");
								Sql sql1=Sqls.create("select $fieldvalue from $tablename where $fieldkey=@keyvalue");
								sql1.vars().set("fieldvalue", loadSelectArry[2]).set("tablename", "L_"+loadSelectArry[0]).set("fieldkey", loadSelectArry[1]);
								sql1.params().set("keyvalue", value);
								value=daoCtl.getStrRowValue(dao, sql1);
							}else{
								sql="select code,name from Cs_value where typeid = '"+loadselect+"'";
								Map<String,String> loadselectMap=daoCtl.getHTable(dao, Sqls.create(sql));
								sql="select code from Cs_value where value='"+value+"' and typeid = '"+loadselect+"'";
								String code=daoCtl.getStrRowValue(dao, Sqls.create(sql));
								int lg=code.length()/4;
								value="";
								for (int j = 1; j <= lg; j++) {
									value+=loadselectMap.get(code.substring(0,j*4))+"/";
								}
								int lg2=value.length()>0?value.length()-1:0;
								value=value.substring(0,lg2);
							}
						}else{
							sql="select name from Cs_value where value='"+value+"' and typeid = '"+loadselect+"'";
							value=daoCtl.getStrRowValue(dao, Sqls.create(sql));
						}
					}else{
						Map<String,String> optionsMap=YYFormUtil.getOptionsMap(options, "#newline#", "/");
						value=optionsMap.get(value);
					}
				}else if(controltype==7||controltype==8){//信用主体
					pageMap.put("xyztid",value);
					String[] values=value.split(",");
					value="";
					for (String val : values) {
						value+=StringUtils.null2String(FormInitUtil.userMap.get(val)).split("☆")[0]+";";
					}
					value=value.substring(0,value.lastIndexOf(";"));
				}else if(controltype==19||controltype==22){//用户所在机构
					value=FormInitUtil.unitMap.get(StringUtils.null2String(value));
				}else if(controltype==21){//当前用户登录名
					
					value=FormInitUtil.userMap.get(StringUtils.null2String(value));
				}
				if(EmptyUtils.isEmpty(value)){
					value=StringUtils.null2String(pageMap.get(fieldname));
				}
				pageMap.put(fieldname,value);
			}
		}
		
		// 去查询 列表 字段用户设置的显示值
		IsListShowUtil.showIsListValue(daoCtl, dao, list, tableid,isprimary);
		
		return list;
	}
}

能看出来什么原因吗

@At
	@Ok("raw")
	public static boolean update

静态方法去掉@At

十一月 09, 2018 8:03:04 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:hfits' did not find a matching property.
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version:        Apache Tomcat/7.0.86
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built:          Apr 9 2018 20:16:54 UTC
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number:         7.0.86.0
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name:               Windows 7
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version:            6.1
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture:          amd64
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Java Home:             C:\Program Files\Java\jre1.8.0_171
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version:           1.8.0_171-b11
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor:            Oracle Corporation
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE:         D:\Users\Administrator.XTM-01702051609\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME:         D:\下载\apache-tomcat-7.0.86
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.base=D:\Users\Administrator.XTM-01702051609\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.home=D:\下载\apache-tomcat-7.0.86
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dwtp.deploy=D:\Users\Administrator.XTM-01702051609\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.endorsed.dirs=D:\下载\apache-tomcat-7.0.86\endorsed
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dfile.encoding=GBK
十一月 09, 2018 8:03:04 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_171\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_171/bin/server;C:/Program Files/Java/jre1.8.0_171/bin;C:/Program Files/Java/jre1.8.0_171/lib/amd64;d:\app\Administrator\product\11.2.0\dbhome_1\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;D:\下载\Toad for Oracle 12.1;C:\Program Files\Java\jdk1.7.0_80\bin;C:\Program Files\Java\jdk1.7.0_80\jre\bin;D:\下载\eclipse;;.
十一月 09, 2018 8:03:04 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
十一月 09, 2018 8:03:04 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1075 ms
十一月 09, 2018 8:03:04 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
十一月 09, 2018 8:03:04 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.86
十一月 09, 2018 8:03:07 下午 org.apache.catalina.startup.TldConfig execute
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
十一月 09, 2018 8:03:08 下午 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
警告: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [1,257] milliseconds.
十一月 09, 2018 8:03:14 下午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://velocity.apache.org/velocity-view is already defined
十一月 09, 2018 8:03:14 下午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://velocity.apache.org/velocity-view is already defined
十一月 09, 2018 8:03:14 下午 org.apache.catalina.startup.TldConfig execute
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
2018-11-09 20:03:15,143 [INFO][org.nutz.mvc.NutFilter] - NutFilter[nutz] starting ...
2018-11-09 20:03:15,763 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz Version : 1.r.65 
2018-11-09 20:03:15,763 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is initializing ...
2018-11-09 20:03:15,835 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -  > scan 'com.hfits'
2018-11-09 20:03:16,438 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'baseAction                              ' - com.hfits.common.action.BaseAction
2018-11-09 20:03:16,440 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'logInterceptor                          ' - com.hfits.common.aop.LogInterceptor
2018-11-09 20:03:16,444 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'baseService                             ' - com.hfits.common.service.BaseService
2018-11-09 20:03:16,452 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'comUtil                                 ' - com.hfits.modules.com.comUtil
2018-11-09 20:03:16,460 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'demoAction                              ' - com.hfits.modules.compt.chart.DemoAction
2018-11-09 20:03:16,470 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'editorAction                            ' - com.hfits.modules.compt.editor.EditorAction
2018-11-09 20:03:16,478 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'editorService                           ' - com.hfits.modules.compt.editor.service.EditorService
2018-11-09 20:03:16,479 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'startSet                                ' - com.hfits.modules.compt.editor.StartSet
2018-11-09 20:03:16,481 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'formAction                              ' - com.hfits.modules.compt.form.FormAction
2018-11-09 20:03:16,485 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'formInitUtil                            ' - com.hfits.modules.compt.form.util.FormInitUtil
2018-11-09 20:03:16,486 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'yYFormAction                            ' - com.hfits.modules.compt.form.YYFormAction
2018-11-09 20:03:16,490 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'weiXinJob                               ' - com.hfits.modules.compt.qyhgl.job.WeiXinJob
2018-11-09 20:03:16,490 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sys_qyhglService                        ' - com.hfits.modules.compt.qyhgl.service.Sys_qyhglService
2018-11-09 20:03:16,495 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sys_qyhglAction                         ' - com.hfits.modules.compt.qyhgl.Sys_qyhglAction
2018-11-09 20:03:16,497 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'database_backupAction                   ' - com.hfits.modules.compt.sjkbf.Database_backupAction
2018-11-09 20:03:16,498 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'oracleDatabaseBackupJob                 ' - com.hfits.modules.compt.sjkbf.job.OracleDatabaseBackupJob
2018-11-09 20:03:16,499 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'displayBlob                             ' - com.hfits.modules.global.DisplayBlob
2018-11-09 20:03:16,501 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'downloadFile                            ' - com.hfits.modules.global.DownloadFile
2018-11-09 20:03:16,504 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'qRCode                                  ' - com.hfits.modules.global.QRCode
2018-11-09 20:03:16,505 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'systemHelp                              ' - com.hfits.modules.global.SystemHelp
2018-11-09 20:03:16,506 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'uploader                                ' - com.hfits.modules.global.Uploader
2018-11-09 20:03:16,511 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'verificationCode                        ' - com.hfits.modules.global.VerificationCode
2018-11-09 20:03:16,515 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'dmjService                              ' - com.hfits.modules.sjygl.service.DmjService
2018-11-09 20:03:16,516 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 't_daimjbAction                          ' - com.hfits.modules.sjygl.T_daimjbAction
2018-11-09 20:03:16,519 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 't_dmjflAction                           ' - com.hfits.modules.sjygl.T_dmjflAction
2018-11-09 20:03:16,524 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'baseAjaxAction                          ' - com.hfits.modules.sys.ajax.BaseAjaxAction
2018-11-09 20:03:16,533 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'buttonAction                            ' - com.hfits.modules.sys.config.ButtonAction
2018-11-09 20:03:16,535 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'csglAction                              ' - com.hfits.modules.sys.config.CsglAction
2018-11-09 20:03:16,537 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'ftpConfigAction                         ' - com.hfits.modules.sys.config.FtpConfigAction
2018-11-09 20:03:16,538 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sys_upload_configAction                 ' - com.hfits.modules.sys.config.Sys_upload_configAction
2018-11-09 20:03:16,539 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'indexAction                             ' - com.hfits.modules.sys.IndexAction
2018-11-09 20:03:16,542 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'loginAction                             ' - com.hfits.modules.sys.LoginAction
2018-11-09 20:03:16,544 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'regAction                               ' - com.hfits.modules.sys.RegAction
2018-11-09 20:03:16,552 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'resourceAction                          ' - com.hfits.modules.sys.ResourceAction
2018-11-09 20:03:16,554 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'roleAction                              ' - com.hfits.modules.sys.RoleAction
2018-11-09 20:03:16,559 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'safeAction                              ' - com.hfits.modules.sys.SafeAction
2018-11-09 20:03:16,560 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'resourceService                         ' - com.hfits.modules.sys.service.ResourceService
2018-11-09 20:03:16,562 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'roleService                             ' - com.hfits.modules.sys.service.RoleService
2018-11-09 20:03:16,563 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sysBaseService                          ' - com.hfits.modules.sys.service.SysBaseService
2018-11-09 20:03:16,564 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'unitService                             ' - com.hfits.modules.sys.service.UnitService
2018-11-09 20:03:16,574 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'userService                             ' - com.hfits.modules.sys.service.UserService
2018-11-09 20:03:16,577 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sys_zlglAction                          ' - com.hfits.modules.sys.Sys_zlglAction
2018-11-09 20:03:16,580 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'testJob                                 ' - com.hfits.modules.sys.task.job.TestJob
2018-11-09 20:03:16,580 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'quartzExecute                           ' - com.hfits.modules.sys.task.quartz.QuartzExecute
2018-11-09 20:03:16,583 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sysLoadTask                             ' - com.hfits.modules.sys.task.quartz.SysLoadTask
2018-11-09 20:03:16,586 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sys_JobTaskAction                       ' - com.hfits.modules.sys.task.Sys_JobTaskAction
2018-11-09 20:03:16,587 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'testAction                              ' - com.hfits.modules.sys.TestAction
2018-11-09 20:03:16,589 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'unitAction                              ' - com.hfits.modules.sys.UnitAction
2018-11-09 20:03:16,592 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'userAction                              ' - com.hfits.modules.sys.UserAction
2018-11-09 20:03:16,597 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'userLogAction                           ' - com.hfits.modules.sys.UserLogAction
2018-11-09 20:03:16,598 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'mergeUtilts                             ' - com.hfits.modules.sys.utils.MergeUtilts
2018-11-09 20:03:16,598 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'sys_wxmsgService                        ' - com.hfits.modules.sys.utils.wx.Sys_wxmsgService
2018-11-09 20:03:16,600 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'wxMessage                               ' - com.hfits.modules.sys.utils.wx.WxMessage
2018-11-09 20:03:16,610 [INFO][org.nutz.ioc.impl.NutIoc] - ... NutIoc init complete
2018-11-09 20:03:16,625 [INFO][org.nutz.mvc.impl.NutLoading] - Build URL mapping by com.hfits.core.UrlMappingSet ...
License file instal successfully!
License file verify successfully!
2018-11-09 20:03:20,562 [INFO][org.nutz.dao.jdbc.Jdbcs] - Get Connection from DataSource for JdbcExpert, if you lock at here, check your database server and configure
2018-11-09 20:03:21,246 [INFO][com.alibaba.druid.pool.DruidDataSource] - {dataSource-1} inited
2018-11-09 20:03:22,198 [INFO][org.nutz.filepool.NutFilePool] - Init file-pool by: /temp/ [2000]
2018-11-09 20:03:22,201 [INFO][org.nutz.filepool.NutFilePool] - file-pool.cursor: 0
2018-11-09 20:03:22,362 [INFO][org.nutz.mvc.impl.NutLoading] - Found 280 module methods
2018-11-09 20:03:22,366 [INFO][org.nutz.mvc.impl.NutLoading] - Setup application...
2018-11-09 20:03:22,430 [INFO][org.quartz.impl.StdSchedulerFactory] - Using default implementation for ThreadExecutor
2018-11-09 20:03:22,437 [INFO][org.quartz.simpl.SimpleThreadPool] - Job execution threads will use class loader of thread: localhost-startStop-1
2018-11-09 20:03:22,471 [INFO][org.quartz.core.SchedulerSignalerImpl] - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
2018-11-09 20:03:22,473 [INFO][org.quartz.core.QuartzScheduler] - Quartz Scheduler v.2.2.1 created.
2018-11-09 20:03:22,475 [INFO][org.quartz.simpl.RAMJobStore] - RAMJobStore initialized.
2018-11-09 20:03:22,477 [INFO][org.quartz.core.QuartzScheduler] - Scheduler meta-data: Quartz Scheduler (v2.2.1) 'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED'
  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
  NOT STARTED.
  Currently in standby mode.
  Number of jobs executed: 0
  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.

2018-11-09 20:03:22,477 [INFO][org.quartz.impl.StdSchedulerFactory] - Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
2018-11-09 20:03:22,477 [INFO][org.quartz.impl.StdSchedulerFactory] - Quartz scheduler version: 2.2.1
2018-11-09 20:03:22,753 [INFO][com.hfits.modules.sys.task.quartz.SysLoadTask] - sys.tasks.size:0

2018-11-09 20:03:27,637 [INFO][com.hfits.core.StartSetup] -   最大内存: 784m  已分配内存: 351m  已分配内存中的剩余空间: 142m  最大可用内存: 575m
2018-11-09 20:03:27,637 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is up in 11874ms
2018-11-09 20:03:27,705 [INFO][velocity_log] - WebappResourceLoader: added template path - '/'
十一月 09, 2018 8:03:28 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
十一月 09, 2018 8:03:28 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
十一月 09, 2018 8:03:28 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 23249 ms

嗯,启动起来了

控制台不报错了,页面404

日志调到debug

添加回复
请先登陆
回到顶部