BRMS- ресурс и набор от промени

Опитвам се да стартирам проект Drools с всички правила, създадени в JBRMS. Имам изключение 401 и водя до нулева точка.

    package pop.blah.test;

import org.drools.KnowledgeBase;
import org.drools.agent.KnowledgeAgent;
import org.drools.agent.KnowledgeAgentFactory;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.definition.type.FactType;

@SuppressWarnings("restriction")
public class CarApp {

    public static void main(String[] args) {

        KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "MyAgent5" );
        kagent.applyChangeSet( ResourceFactory.newUrlResource("http://localhost:8080/jboss-brms/org.drools.guvnor.Guvnor/package/pop.blah.test/CAR"));
        KnowledgeBase kbase = kagent.getKnowledgeBase();
        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
        ResourceFactory.getResourceChangeScannerService().start();
        try {
        FactType carType = kbase.getFactType( "pop.blah.test", "Car" );
        Object bmw = carType.newInstance();
        carType.set( bmw,"name","My Car" );
        carType.set( bmw,"make","BMW" );
        carType.set( bmw,"year", 1977);
        ksession.insert( bmw );
        ksession.fireAllRules();
        boolean dest = (Boolean) carType.get( bmw, "destroy" );
        if (dest==true) {
            System.out.println("I am gona destroy that car!");
        }
        else {
            System.out.println("I am happy with my car!");
        }
        } 
        catch (Exception E) {
         E.printStackTrace();   
        }
        finally {
         ksession.dispose();
        }

    }

}

Това е ГРЕШКАТА, която получавам.

[2011:12:363 14:12:718:debug] KnowledgeAgent building resource map
[2011:12:363 14:12:718:info] KnowledegAgent has started listening for ChangeSet notifications
[2011:12:363 14:12:718:info] KnowledgeAgent created, with configuration:
monitorChangeSetEvents=true scanResources=true scanDirectories=true newInstance=true
[2011:12:363 14:12:765:exception]
java.lang.RuntimeException: Unable to parse ChangeSet
    at org.drools.agent.impl.KnowledgeAgentImpl.getChangeSet(KnowledgeAgentImpl.java:393)
    at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:168)
    at pop.blah.test.CarApp.main(CarApp.java:16)
Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: http://localhost:8080/jboss-brms/org.drools.guvnor.Guvnor/package/pop.blah.test/LATEST
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at org.drools.io.impl.UrlResource.grabStream(UrlResource.java:210)
    at org.drools.io.impl.UrlResource.getInputStream(UrlResource.java:146)
    at org.drools.io.impl.UrlResource.getReader(UrlResource.java:214)
    at org.drools.agent.impl.KnowledgeAgentImpl.getChangeSet(KnowledgeAgentImpl.java:391)
    ... 2 more
[2011:12:363 14:12:765:exception]
java.lang.RuntimeException: Unable to parse ChangeSet
    at org.drools.agent.impl.KnowledgeAgentImpl.getChangeSet(KnowledgeAgentImpl.java:397)
    at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:168)
    at pop.blah.test.CarApp.main(CarApp.java:16)
[2011:12:363 14:12:765:info] KnowledgeAgent applying ChangeSet
Exception in thread "main" java.lang.NullPointerException
    at org.drools.agent.impl.KnowledgeAgentImpl.processChangeSet(KnowledgeAgentImpl.java:215)
    at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:183)
    at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:168)
    at pop.blah.test.CarApp.main(CarApp.java:16)

Получавам изключение 401. Трябва ли да включа файл със свойства за удостоверяване с това за този uri? Моят ресурс има декларативен модел и правило. Просто правило, което гласи, че ако "годината" на автомобила е по-малка от 1989, задайте стойността на "destroy" на true. Греша някъде. Може ли някой да ми помогне?


person aps    schedule 28.12.2011    source източник


Отговори (2)


Ако отидете на guvnor, какви ресурси сочат към този URL? http://localhost:8080/jboss-brms/org.drools.guvnor.Guvnor/package/org.pci/EPOCH? Откъде взе този URL? получавате ли пакет, наречен org.pci, с ресурс, наречен EPOCH? наздраве

person salaboy    schedule 29.12.2011
comment
Бях редактирал кода по-горе. URL адресът сочи към ресурсите в BRMS. Създадох моментна снимка и взех URL адреса оттам. 401 е грешка при удостоверяване, така че това означава ли, че трябва да включа файл със свойства? Ако да, къде в проекта Drools трябва да го поставя? - person aps; 30.12.2011
comment
Току-що добавих файла със свойствата според тази публикация: stackoverflow.com/questions/5791025/ Сега не получавам изключение 401, а вместо това грешка на реда--- Object bmw = carType.newInstance(); - person aps; 30.12.2011

Сигурни ли сте, че включвате декларирания тип автомобил в пакета знания?

person salaboy    schedule 31.12.2011
comment
Според документацията използвах точния код. Мисля, че все още има проблем с удостоверяването, защото екземплярът на Car не може да бъде създаден. Базата знания не може да посочи ресурса. Можете ли да ми дадете някакъв вид код, който може да получи достъп до ресурса в BRMS? - person aps; 01.01.2012