Drools-guvnor Server returned HTTP response code: 401

java_feng 2011-04-19
RuleAgent(default) INFO (Tue Apr 19 05:46:59 GMT 2011): Configuring with newInstance=false, secondsToRefresh=-1
RuleAgent(default) INFO (Tue Apr 19 05:46:59 GMT 2011): Configuring package provider : URLScanner monitoring URLs:  http://localhost:8080/drools-5.1.1-guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST
RuleAgent(default) EXCEPTION (Tue Apr 19 05:46:59 GMT 2011): Server returned HTTP response code: 401 for URL: http://localhost:8080/drools-5.1.1-guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST. Stack trace should follow.
java.io.IOException: Server returned HTTP response code: 401 for URL: http://localhost:8080/drools-5.1.1-guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at org.drools.agent.HttpClientImpl.fetchPackage(HttpClientImpl.java:77)
at org.drools.agent.URLScanner.readPackage(URLScanner.java:171)
at org.drools.agent.URLScanner.getChangeSet(URLScanner.java:143)
at org.drools.agent.URLScanner.loadPackageChanges(URLScanner.java:119)
at org.drools.agent.RuleAgent.checkForChanges(RuleAgent.java:429)
at org.drools.agent.RuleAgent.refreshRuleBase(RuleAgent.java:381)
at org.drools.agent.RuleAgent.configure(RuleAgent.java:366)
at org.drools.agent.RuleAgent.init(RuleAgent.java:266)
at org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:206)
at org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:166)
at com.alesaudate.drools.sample.client.Client.getAgent(Client.java:57)
at com.alesaudate.drools.sample.client.Client.consume(Client.java:32)
at com.alesaudate.drools.sample.client.Client.main(Client.java:117)
Exception in thread "main" java.lang.NullPointerException
at org.drools.agent.RuleAgent.refreshRuleBase(RuleAgent.java:382)
at org.drools.agent.RuleAgent.configure(RuleAgent.java:366)
at org.drools.agent.RuleAgent.init(RuleAgent.java:266)
at org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:206)
at org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:166)
at com.alesaudate.drools.sample.client.Client.getAgent(Client.java:57)
at com.alesaudate.drools.sample.client.Client.consume(Client.java:32)
at com.alesaudate.drools.sample.client.Client.main(Client.java:117)

有人说是安全问题 需要配置basicAuthentication=enabled username=admin password=admin 可是配置了也没有用啊。有人解决过吗?
java_feng 2011-04-19
我的完整错误代码:
执行完毕1
[2011:04:109 05:04:78:info] ResourceChangeNotification created
[2011:04:109 05:04:78:info] ResourceChangeScanner reconfigured with interval=60
[2011:04:109 05:04:78:info] ResourceChangeScanner created with default interval=60
[2011:04:109 05:04:78:debug] ResourceChangeNotification monitor added monitor=org.drools.io.impl.ResourceChangeScannerImpl@8b819f
[2011:04:109 05:04:78:debug] KnowledgeAgent building resource map
[2011:04:109 05:04:78:info] KnowledgeAgent created, with configuration:
monitorChangeSetEvents=true scanResources=true scanDirectories=true newInstance=true
[2011:04:109 05:04:78:info] KnowledegAgent has started listening for ChangeSet notifications
[2011:04:109 05:04:875:info] KnowledgeAgent applying ChangeSet
[2011:04:109 05:04:875:debug] KnowledgeAgent notifier subscribing to resource=[UrlResource path='http://localhost:8080/drools-5.1.1-guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST']
[2011:04:109 05:04:875:debug] ResourceChangeNotification subscribing listener=org.drools.agent.impl.KnowledgeAgentImpl@dc57db to resource=[UrlResource path='http://localhost:8080/drools-5.1.1-guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST']
[2011:04:109 05:04:875:debug] ResourceChangeScanner subcribing notifier=org.drools.io.impl.ResourceChangeNotifierImpl@c24c0 to resource=[UrlResource path='http://localhost:8080/drools-5.1.1-guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST']
[2011:04:109 05:04:890:debug] KnowledgeAgent rebuilding KnowledgeBase using ChangeSet
[2011:04:109 05:04:906:exception]
java.lang.RuntimeException: KnowledgeAgent exception while trying to deserialize KnowledgeDefinitionsPackage 
at org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:664)
at org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:889)
at org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:704)
at org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBase(KnowledgeAgentImpl.java:584)
at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:185)
at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:168)
at com.sample.DroolsTest.readKnowledgeBase(DroolsTest.java:63)
at com.sample.DroolsTest.main(DroolsTest.java:29)
Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: http://localhost:8080/drools-5.1.1-guvnor/org.drools.guvnor.Guvnor/package/mortgages/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.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:652)
... 7 more
[2011:04:109 05:04:906:debug] KnowledgeAgent obtaining pkg resource=[UrlResource path='http://localhost:8080/drools-5.1.1-guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST']
[2011:04:109 05:04:906:exception]
java.lang.RuntimeException: KnowledgeAgent exception while trying to deserialize KnowledgeDefinitionsPackage 
at org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:914)
at org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:704)
at org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBase(KnowledgeAgentImpl.java:584)
at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:185)
at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:168)
at com.sample.DroolsTest.readKnowledgeBase(DroolsTest.java:63)
at com.sample.DroolsTest.main(DroolsTest.java:29)
Caused by: java.lang.NullPointerException
at org.drools.agent.impl.KnowledgeAgentImpl.addResourcesToKnowledgeBase(KnowledgeAgentImpl.java:906)
... 6 more
[2011:04:109 05:04:906:info] KnowledgeAgent new KnowledgeBase now built and in use
[2011:04:109 05:04:906:debug] KnowledgeAgent finished rebuilding KnowledgeBase using ChangeSet
执行完毕2
finally:执行完毕!
java_feng 2011-04-19
我的调用:
package com.sample;

import java.net.URL;

import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.agent.KnowledgeAgent;
import org.drools.agent.KnowledgeAgentFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderError;
import org.drools.builder.KnowledgeBuilderErrors;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.io.impl.UrlResource;
import org.drools.logger.KnowledgeRuntimeLogger;
import org.drools.logger.KnowledgeRuntimeLoggerFactory;
import org.drools.runtime.StatefulKnowledgeSession;

/**
* This is a sample class to launch a rule.
*/
public class DroolsTest {

public static final void main(String[] args) {
System.out.println("执行完毕1");
try {
// load up the knowledge base
KnowledgeBase kbase = readKnowledgeBase();
// RuleBase base=readKnowledgeBase();
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
// StatefulSession ksession = base.newStatefulSession();
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory
.newFileLogger(ksession, "test");
// go !
System.out.println("执行完毕2");
Message message = new Message();
message.setMessage("Hello World");
message.setStatus(Message.HELLO);
ksession.insert(message);
ksession.fireAllRules();

logger.close();
} catch (Throwable t) {
System.out.println("error:执行完毕!");
t.printStackTrace();
}finally{
System.out.println("finally:执行完毕!");
}
}

private static KnowledgeBase readKnowledgeBase() throws Exception {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory
.newKnowledgeBuilder();
String urlString = "http://localhost:8080/drools-5.1.1-guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST/ChangeSet.xml";
//String urlString = "http://localhost:8080/hcbrms/org.drools.guvnor.Guvnor/package/com.wu.test/LATEST/ChangeSet.xml";
URL url = new URL(urlString);
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent("test");
UrlResource urlResource = (UrlResource)ResourceFactory.newUrlResource(url);
urlResource.setBasicAuthentication("enabled");
urlResource.setUsername("admin");
urlResource.setPassword("");
kagent.applyChangeSet(urlResource);
KnowledgeBase kbase = kagent.getKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
// 采用Agent的方式
/*
* KnowledgeAgent
* kagent=KnowledgeAgentFactory.newKnowledgeAgent("/deploy.properties");
* KnowledgeBase kbase=kagent.getKnowledgeBase();
*/
return kbase;
}

public static class Message {

public static final int HELLO = 0;
public static final int GOODBYE = 1;

private String message;

private int status;

public String getMessage() {
return this.message;
}

public void setMessage(String message) {
this.message = message;
}

public int getStatus() {
return this.status;
}

public void setStatus(int status) {
this.status = status;
}

}

}
java_feng 2011-04-19
有人知道吗?
windhello 2011-04-30
你的用的是 ChangeSet.xml的配置方式啊?可以换个别的配置方式。
还有这个drools-5.1.1版本不太稳定,是比较容易出问题,可以改成比较老的版本的。
chenlinux 2012-11-07
我也遇到这个问题了,大哥,能否告诉你怎么解决的?
Global site tag (gtag.js) - Google Analytics