Aws lambda “如何修复”;java.lang.NullPointerException“;位于org.kie.internal.io.ResourceFactory.newFileResource
我在尝试创建新会话时遇到空指针异常: 使用AWS Lambda(java.jar文件)+Drools规则引擎的java.lang.NullPointerException kContainer.newKieSessiona。]Aws lambda “如何修复”;java.lang.NullPointerException“;位于org.kie.internal.io.ResourceFactory.newFileResource,aws-lambda,drools,Aws Lambda,Drools,我在尝试创建新会话时遇到空指针异常: 使用AWS Lambda(java.jar文件)+Drools规则引擎的java.lang.NullPointerException kContainer.newKieSessiona。] public类LambdaRequestHandler实现RequestHandler{ @凌驾 公共字符串handleRequest(字符串输入,上下文){ context.getLogger().log(“输入:”+Input); int rulesFired=0;
public类LambdaRequestHandler实现RequestHandler{
@凌驾
公共字符串handleRequest(字符串输入,上下文){
context.getLogger().log(“输入:”+Input);
int rulesFired=0;
试一试{
KieServices=KieServices.Factory.get();
KieContainer kContainer=ks.getKieClasspathContainer();
KieSession kSession=kContainer.newKieSession(“kSession规则”);
账户=新账户(200);
账户提款(150);
K段。插入(账户);
rulesFired=kSession.fireAllRules();
}捕获(可丢弃的t){
t、 printStackTrace();
}
返回“已激发规则-”+已激发规则;
}
}
Rules.drl文件
一揽子规则
进口帐户
规则“账户余额检查1”
什么时候
美元账户:账户(余额<100)
然后
System.out.println(“内部规则1”);
结束
kmodule.xml文件
任何帮助都将不胜感激 你解决了吗?你解决了吗?
public class LambdaRequestHandler implements RequestHandler<String, String> {
@Override
public String handleRequest(String input, Context context) {
context.getLogger().log("Input: " + input);
int rulesFired = 0;
try {
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession("ksession-rules");
Account account = new Account(200);
account.withdraw(150);
kSession.insert(account);
rulesFired = kSession.fireAllRules();
} catch (Throwable t) {
t.printStackTrace();
}
return "Rules Fired - " + rulesFired;
}
}
Rules.drl file
package rules
import Account
rule "accountBalanceCheck1"
when
$account : Account( balance < 100 )
then
System.out.println("Inside rule 1");
end
kmodule.xml file
<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
<kbase name="rules" packages="rules">
<ksession name="ksession-rules"/>
</kbase>
<kbase name="rules2" packages="rules">
<ksession name="statelessSession" type="stateless" default="true"/>
</kbase>
<kbase name="dtables" packages="dtables">
<ksession name="ksession-dtables"/>
</kbase>
<kbase name="process" packages="process">
<ksession name="ksession-process"/>
</kbase>
</kmodule>