在使用Quartz时,使用了quartz_job.xml来描述job与triger。
碰到问题如下:服务启动时提示
#1.5#0013724F07C4005C0000043F00001E1C00041A141F2FA90B#1154573631754#System.out#sap.com/app#System.out#Guest#2####4a5bb140229b11dbb4230013724f07c4#SAPEngine_Application_Thread[impl:3]_28##0#0#Info##Plain###0 [SAPEngine_Application_Thread[impl:3]_28] ERROR org.apache.commons.digester.Digester - Parse Error at line 2 column 9: cvc-elt.1: Cannot find the declaration of element 'quartz'. org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'quartz'. at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source) at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.commons.digester.Digester.parse(Digester.java:1548) at org.quartz.xml.JobSchedulingDataProcessor.processFile(JobSchedulingDataProcessor.java:430) at org.quartz.xml.JobSchedulingDataProcessor.processFileAndScheduleJobs(JobSchedulingDataProcessor.java:499) at org.quartz.xml.JobSchedulingDataProcessor.processFileAndScheduleJobs(JobSchedulingDataProcessor.java:485) at org.quartz.plugins.xml.JobInitializationPlugin.processFile(JobInitializationPlugin.java:401) at org.quartz.plugins.xml.JobInitializationPlugin.start(JobInitializationPlugin.java:375) at org.quartz.core.QuartzScheduler.startPlugins(QuartzScheduler.java:1919) at org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:397) at org.quartz.impl.StdScheduler.start(StdScheduler.java:147) at org.quartz.ee.servlet.QuartzInitializerServlet.init(QuartzInitializerServlet.java:158) at com.sap.engine.services.servlets_jsp.server.runtime.context.WebComponents.addServlet(WebComponents.java:138) at com.sap.engine.services.servlets_jsp.server.container.ApplicationThreadInitializer.loadServlets(ApplicationThreadInitializer.java:376) at com.sap.engine.services.servlets_jsp.server.container.ApplicationThreadInitializer.run(ApplicationThreadInitializer.java:110) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:159) |
quartz_job.xml文件为:
<?xml version="1.0" encoding="UTF-8"?> |
原因是xml解析时校验出错,修改为如下后正确:
<?xml version="1.0" encoding="UTF-8"?> <quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" overwrite-existing-jobs="true"> <job> <job-detail> <name>helloworld</name> <group>group1</group> <job-class>com.nci.test.Helloworld</job-class> </job-detail> <trigger> <cron> <name>test</name> <group>group1</group> <job-name>helloworld</job-name> <job-group>group1</job-group> <cron-expression>0 0/1 * * * ?</cron-expression> </cron> </trigger> </job> </quartz> |