youseries / urule

URULE是一款基于RETE算法的纯Java规则引擎,提供规则集、决策表、决策树、评分卡,规则流等各种规则表现工具及基于网页的可视化设计器,可快速开发出各种复杂业务规则。
Apache License 2.0
1.82k stars 722 forks source link

Remote service and local KnowledgePackageService all unavailable #145

Open wengsheng112 opened 4 years ago

wengsheng112 commented 4 years ago

为了您的问题能得到及时准确解答,请认真填写下面各个选项,感谢您的配合。

2.1.7

youseries commented 4 years ago

service.getKnowledge("test-trade1") 从代码上来看,调用知识包的格式不对,需要的是项目名+"/"+知识包ID,文档视频中都有详细的介绍, 你这里应该是:service.getKnowledge("test/test-trade1")

wengsheng112 commented 4 years ago

改成service.getKnowledge("test/test-trade1")也是报同样的错误

wengsheng112 commented 4 years ago

信息: Load knowledgepackage [test/test-trade1] from remote... Exception in thread "main" com.bstek.urule.exception.RuleException: Remote service and local KnowledgePackageService all unavailable at com.bstek.urule.runtime.service.KnowledgeServiceImpl.a(KnowledgeServiceImpl.java:84) at com.bstek.urule.runtime.service.KnowledgeServiceImpl.getKnowledge(KnowledgeServiceImpl.java:49) at tt.Invoke.doTest(Invoke.java:35) at tt.Test.main(Test.java:21)

youseries commented 4 years ago

urule.resporityServerUrl这个属性配置了没,对于客户端来说,在请求知识包时如果服务端没有推送目标知识包过来,那么它会尝试用urule.resporityServerUrl属性到服务端取知识包,如果有则直接采用本地的。

wengsheng112 commented 4 years ago

配置服务端的地址,并测试服务端“urule/dynamic/checkLatestJarsDir”和“urule/dynamic/loadDynamicJars”都可以访问。客户端也配置存放的目录D:/repo。因为服务端能推送知识包到客户端,并在客户端有显示成功接收到知识包。urule.knowledgeUpdateCycle这个0和1都试过了。也debug了,从本地库里面没有找到该文件后去服务端拉取知识包也没有拉取成功

youseries commented 4 years ago

客户端不能配置存放的目录D:/repo,否则引擎会尝试在客户端找这个知识包。所以这个属性置为空,配置好urule.resporityServerUrl属性即可。