2016-09-02 40 views
2

我正在尝试使用Drools Workbench版本6.4.0 Final在KIE服务器中重新创建CloudBalancing示例。我能够通过REST API在KIE创建容器和求解器,但是当我尝试启动解决,我得到了以下错误:optaplanner/drools工作台6.4.0 Final ScoreDirectorFacotry

03:15:50,831 INFO [org.kie.server.services.impl.KieServerImpl] (EJB default - 2) Container optacloud_1_0_0 (for release id opta:optacloud:1.0.0) successfully started 
03:17:44,170 INFO [org.kie.server.services.optaplanner.SolverServiceBase] (default task-13) Solver 'solver1' successfully created in container 'optacloud_1_0_0' 
03:19:19,654 ERROR [org.kie.server.services.optaplanner.SolverServiceBase] (pool-9-thread-1) Exception executing solver 'solver1' from container 'optacloud_1_0_0'. Thread will terminate.: java.lang.NullPointerException 
    at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333) [rt.jar:1.7.0_80] 
    at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1125) [rt.jar:1.7.0_80] 
    at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:613) [drools-compiler-6.4.0.Final.jar:6.4.0.Final] 
    at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:575) [drools-compiler-6.4.0.Final.jar:6.4.0.Final] 
    at org.optaplanner.core.impl.score.director.drools.DroolsScoreDirectorFactory.newKieSession(DroolsScoreDirectorFactory.java:113) [optaplanner-core-6.4.0.Final.jar:6.4.0.Final] 
    at org.optaplanner.core.impl.score.director.drools.DroolsScoreDirector.resetKieSession(DroolsScoreDirector.java:68) [optaplanner-core-6.4.0.Final.jar:6.4.0.Final] 
    at org.optaplanner.core.impl.score.director.drools.DroolsScoreDirector.setWorkingSolution(DroolsScoreDirector.java:61) [optaplanner-core-6.4.0.Final.jar:6.4.0.Final] 
    at org.optaplanner.core.impl.solver.scope.DefaultSolverScope.setWorkingSolutionFromBestSolution(DefaultSolverScope.java:198) [optaplanner-core-6.4.0.Final.jar:6.4.0.Final] 
    at org.optaplanner.core.impl.solver.DefaultSolver.solvingStarted(DefaultSolver.java:196) [optaplanner-core-6.4.0.Final.jar:6.4.0.Final] 
    at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:175) [optaplanner-core-6.4.0.Final.jar:6.4.0.Final] 
    at org.kie.server.services.optaplanner.SolverServiceBase$1.run(SolverServiceBase.java:329) [kie-server-services-optaplanner-6.4.0.Final.jar:6.4.0.Final] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_80] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_80] 
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_80] 

是不是因为我是缺少“scoreDrl”在SolverConfig.xml ?我如何通过工作台UI配置SolverConfig.xml?看来我无法通过界面编辑SolverConfig.xml。

+0

这不是因为缺少'scoreDrl',因为如果这是一个问题(它不在kjar中),那么你会得到一个很好的失败快速错误消息。这个错误并不好。 –

+0

你可以尝试用drools和optaplanner'6.5.0.CR1'吗?所以只需使用kie-server 6.5.0.CR1即可。如果它仍然存在,这是一个错误,请用复制器提交一个jira。 –

+0

[创建jira](https://issues.jboss.org/projects/PLANNER) –

回答

0

谢谢Geoffrey的调查,他发现问题的根源与DROOLS-1276有关。问题的解决方法不是使用默认的ksession。

要在Drools的工作台上kession情况如下:

Project Authoring -> Open Project Editor -> Knowledge Bases and Sessions 

然后在项目的求解器配置更新知识届。该问题将得到解决。