You have to create a change-set containing authentication information for the resource. Please search in this mailing list since this problem was previously solved.
/Hello there, I was trying to do write a simple rule inside BRMS: When a car
model year is older than 1989, then destroy the car. Package was validated
and created the snapshot and copied the uri. Then I created a Drools Project
and was trying to access those resources through uri but I am not able to go
forward. Its showing 401 exception at the line I specified the uri in the
code, see below:/
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;
public class CarApp {
public static void main(String[] args) {
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent(
"myAgent1" );
kagent.applyChangeSet(
ResourceFactory.newUrlResource("http://localhost:8080/jboss-brms/org.drools.guvnor.Guvnor/package/pop.blah.test/CAR/LATEST"));
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-x5" );
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();
}
}
}
/and here is my Error:/
[2012:01:03 08:01:578:info] ResourceChangeNotification created
[2012:01:03 08:01:578:info] ResourceChangeScanner reconfigured with
interval=60
[2012:01:03 08:01:578:info] ResourceChangeScanner created with default
interval=60
[2012:01:03 08:01:578:debug] ResourceChangeNotification monitor added
monitor=org.drools.io.impl.ResourceChangeScannerImpl@1bd7848
[2012:01:03 08:01:593:debug] KnowledgeAgent building resource map
[2012:01:03 08:01:593:info] KnowledegAgent has started listening for
ChangeSet notifications
[2012:01:03 08:01:593:info] KnowledgeAgent created, with configuration:
monitorChangeSetEvents=true scanResources=true scanDirectories=true
newInstance=true
[2012:01:03 08:01:859: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/CAR/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
[2012:01:03 08:01:859: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)
[2012:01:03 08:01:859: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)
Please help me.
--
View this message in context: http://drools.46999.n3.nabble.com/urlResource-applyChangeset-and-authentication-error-tp3629051p3629051.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users