Drools:未使用change-set.xml执行规则文件

Drools:未使用change-set.xml执行规则文件,drools,Drools,下面是我的主java文件,它调用changeset.xml。在changeset.xml中提供的规则文件在不使用changeset.xml的情况下执行时不会执行 ResourceFactory.getResourceChangeNotifierService().start(); ResourceFactory.getResourceChangeScannerService().start(); ResourceChangeScannerCo

下面是我的主java文件,它调用changeset.xml。在changeset.xml中提供的规则文件在不使用changeset.xml的情况下执行时不会执行

        ResourceFactory.getResourceChangeNotifierService().start(); 
        ResourceFactory.getResourceChangeScannerService().start(); 

        ResourceChangeScannerConfiguration sconf = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration(); 
        sconf.setProperty("drools.resource.scanner.interval", "10"); 
        ResourceFactory.getResourceChangeScannerService().configure(sconf); 

        KnowledgeAgentConfiguration aconf = KnowledgeAgentFactory.newKnowledgeAgentConfiguration(); 
        aconf.setProperty("drools.agent.scanDirectories", "true"); 
        aconf.setProperty("drools.agent.scanResources", "true"); 
        aconf.setProperty("drools.agent.newInstance", "false");



         //  KnowledgeBuilder kbuilder1 = KnowledgeBuilderFactory.newKnowledgeBuilder();
        //  kbuilder1.add( ResourceFactory.newFileResource("file:C://Users//latika.vashishtha.in//Workspace 2//AppChangeset1//src//test//resources//change-set.xml"),ResourceType.CHANGE_SET );

        KnowledgeAgent knowledgeAgent = KnowledgeAgentFactory.newKnowledgeAgent("AGENT", aconf); 

            knowledgeAgent.applyChangeSet(ResourceFactory.newFileResource("file:C://Users//latika.vashishtha.in//Workspace 2//AppChangeset1//src//test//resources//Sample.drl" )); 
             knowledgeAgent.addEventListener(new DebugKnowledgeAgentEventListener());
             return knowledgeAgent.getKnowledgeBase(); 
/******************************Changeset.xml****************************/

<?xml version="1.0" encoding="UTF-8"?> 
<change-set xmlns='http://drools.org/drools-5.0/change-set'
             xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'
             xs:schemaLocation='http://drools.org/drools-5.0/change-set.xsd http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd'>
    <add>   
       <resource source='C:/Users/latika.vashishtha.in/Workspace 2/AppChangeset1/src/test/resources/Sample.drl' type='DRL'> </resource>
    </add>
</change-set>
          <?xml version="1.0" encoding="UTF-8"?> 
<change-set xmlns='http://drools.org/drools-5.0/change-set'
             xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'
             xs:schemaLocation='http://drools.org/drools-5.0/change-set.xsd http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd'>
    <add>   
       <resource source='C:/Users/latika.vashishtha.in/Workspace 2/AppChangeset1/src/test/resources/Sample.drl' type='DRL'> </resource>
    </add>
</change-set>

您通过的是drl而不是变更集

    KnowledgeAgentConfiguration aconf = KnowledgeAgentFactory.newKnowledgeAgentConfiguration(); 
    aconf.setProperty("drools.agent.scanDirectories", "true"); 
    aconf.setProperty("drools.agent.scanResources", "true"); 
    aconf.setProperty("drools.agent.newInstance", "false");

    KnowledgeBuilder kbuilder1 = KnowledgeBuilderFactory.newKnowledgeBuilder();
    kbuilder1.add( ResourceFactory.newFileResource("file:C://Users//latika.vashishtha.in//Workspace 2//AppChangeset1//src//test//resources//Sample.drl"),ResourceType.DRL );
    assertFalse( kbuilder.hasErrors());
    KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();

    KnowledgeAgent knowledgeAgent = KnowledgeAgentFactory.newKnowledgeAgent("AGENT", kbase, aconf); 

    knowledgeAgent.applyChangeSet(ResourceFactory.newFileResource("file:C://Users//latika.vashishtha.in//Workspace 2//AppChangeset1//src//test//resources//change-set.xml" )); 
    knowledgeAgent.addEventListener(new DebugKnowledgeAgentEventListener());

    ResourceChangeScannerConfiguration sconf = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration(); 
    sconf.setProperty("drools.resource.scanner.interval", "10"); 
    ResourceFactory.getResourceChangeScannerService().configure(sconf);
    ResourceFactory.getResourceChangeNotifierService().start(); 
    ResourceFactory.getResourceChangeScannerService().start(); 
    return knowledgeAgent.getKnowledgeBase(); 

您将drl指向更改集knowledgeAgent.applyChangeSet(ResourceFactory.newFileResource(“文件:C://Users//latika.vashishtha.in//Workspace 2//AppChangeset1//src//test//resources//change set.xml”);这可能会解决问题