According to the log info, there have a NPE occur when call method kieContainer.newKieSession().
Best Regards, Jerry Zhang > On 13 Sep 2017, at 14:15, 张博 <jyzhan...@gmail.com> wrote: > > Hi! > Now I want to use Drools in a blot,it works normal in the LocalCluster, but > when I put it to the production cluster,it has error. > The blot: > public class DealLostBolt extends BaseRichBolt { > > private static final long serialVersionUID = 1L; > > private static final Logger LOGGER = > LoggerFactory.getLogger("DEAL_LOST_BOLT"); > > private OutputCollector collector; > > private KieSession kieSession; > > private FactHandle factHandle; > > @Override > public void execute(Tuple input) { > // 获取数据 > String sentence = (String) input.getValue(0); > LOGGER.info("DealLostBolt获取到的数据:" + sentence); > > // 数据转换 > PutDataPoint dataPoint = Json.fromJson(PutDataPoint.class, sentence); > > KieServices ks = KieServices.Factory.get(); > KieContainer kieContainer = ks.getKieClasspathContainer(); > kieSession = kieContainer.newKieSession("all-rule"); > kieSession.getAgenda().getAgendaGroup("deal-lost").setFocus(); > > factHandle = kieSession.insert(dataPoint); > kieSession.fireAllRules(); > kieSession.delete(factHandle); > > collector.emit(new Values(sentence)); > } > > @Override > public void declareOutputFields(OutputFieldsDeclarer declarer) { > declarer.declare(new Fields("value")); > > } > > @Override > public void prepare(Map stormConf, TopologyContext context, OutputCollector > collector) { > this.collector = collector; > } > > } > The erros: > java.lang.RuntimeException: java.lang.NullPointerException > at > org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:495) > ~[storm-core-1.1.1.jar:1.1.1] > at > org.apache.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:460) > ~[storm-core-1.1.1.jar:1.1.1] > at > org.apache.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:73) > ~[storm-core-1.1.1.jar:1.1.1] > at > org.apache.storm.daemon.executor$fn__5030$fn__5043$fn__5096.invoke(executor.clj:848) > ~[storm-core-1.1.1.jar:1.1.1] > at org.apache.storm.util$async_loop$fn__557.invoke(util.clj:484) > [storm-core-1.1.1.jar:1.1.1] > at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?] > at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121] > Caused by: java.lang.NullPointerException > at > org.kie.internal.io.ResourceFactory.newByteArrayResource(ResourceFactory.java:66) > ~[se-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?] > at > org.drools.compiler.kie.builder.impl.AbstractKieModule.getResource(AbstractKieModule.java:299) > ~[se-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?] > at > org.drools.compiler.kie.builder.impl.AbstractKieModule.addResourceToCompiler(AbstractKieModule.java:264) > ~[se-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?] > at > org.drools.compiler.kie.builder.impl.AbstractKieModule.addResourceToCompiler(AbstractKieModule.java:259) > ~[se-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?] > at > org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:228) > ~[se-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?] > at > org.drools.compiler.kie.builder.impl.AbstractKieModule.createKieBase(AbstractKieModule.java:206) > ~[se-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?] > at > org.drools.compiler.kie.builder.impl.KieContainerImpl.createKieBase(KieContainerImpl.java:584) > ~[se-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?] > at > org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:552) > ~[se-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?] > at > org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:680) > ~[se-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?] > at > org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:648) > ~[se-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?] > at cn.ennwifi.storm.bolt.DealLostBolt.execute(DealLostBolt.java:52) > ~[se-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?] > at > org.apache.storm.daemon.executor$fn__5030$tuple_action_fn__5032.invoke(executor.clj:729) > ~[storm-core-1.1.1.jar:1.1.1] > at > org.apache.storm.daemon.executor$mk_task_receiver$fn__4951.invoke(executor.clj:461) > ~[storm-core-1.1.1.jar:1.1.1] > at > org.apache.storm.disruptor$clojure_handler$reify__4465.onEvent(disruptor.clj:40) > ~[storm-core-1.1.1.jar:1.1.1] > at > org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:482) > ~[storm-core-1.1.1.jar:1.1.1] > ... 6 more > > Could somebody help me? > > Thanks!