石英调度器,XML ValidationException

Quartz Scheduler, XML ValidationException

我正在尝试使用 XML 文件设置 Quartz Scheduler 作业,调度程序对象正在读取 .properties 文件并找到 XML 作业定义文件。 但是我收到了一个解析验证异常,我似乎无法根据错误

找出问题所在
11:14:12.314 [localhost-startStop-1] ERROR o.q.p.x.XMLSchedulingDataProcessorPlugin - Error scheduling jobs: Encountered 2 validation exceptions.

org.quartz.xml.ValidationException: 遇到 2 次验证异常。

然后

Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'group'. One of '{"http://www.quartz-scheduler.org/xml/JobSchedulingData":durability, "http://www.quartz-scheduler.org/xml/JobSchedulingData":job-data-map}' is expected.

我已经定义了<durability>,作业不需要数据映射。

我的XML是

<?xml version="1.0" encoding="UTF-8"?>
<job-scheduling-data
xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData 
    http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"
version="1.8">

    <schedule>
        <job>
            <name>MailJob</name>
            <description>Mail dispatcher job</description>
            <job-class>com.myapplication.reporting.MailJob</job-class>
            <group>MailGroup</group>
            <durability>false</durability>
        </job>

        <trigger>
            <simple>
                <name>MailTrigger</name>
                <description>Mail dispatcher job trigger, this should be set to run every 1 minute</description>
                <repeat-interval>60000</repeat-interval>
                <group>MailTriggerGroup</group>
                <job-name>MailJob</job-name>
                <job-group>mailGroup</job-group>
            </simple>
        </trigger>
    </schedule>
</job-scheduling-data>

我正在使用 Quartz 2.2.2

看来 XML 元素的顺序对解析器很重要,使用 Netbeans XML 验证功能我编辑了 XML 文件,现在它工作正常

<?xml version="1.0" encoding="UTF-8"?>
<job-scheduling-data
xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData 
    http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"
version="1.8">

    <schedule>
        <job>
            <name>MailJob</name>
            <group>MailGroup</group>
            <description>Mail dispatcher job</description>
            <job-class>com.myapplication.reporter.MailJob</job-class>     
        </job>

        <trigger>
            <simple>
                <name>MailTrigger</name>
                <description>Mail dispatcher job trigger, this should be set to run every 1 minute</description>
                <job-name>MailJob</job-name>
                <job-group>MailGroup</job-group>
                <repeat-count>0</repeat-count>
                <repeat-interval>60000</repeat-interval>
            </simple>
        </trigger>
    </schedule>

</job-scheduling-data>

我想问题可能在于您在 XML 中定义节点的顺序。

尝试重新排序 here

即name/group/description 然后是其他设置。