- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 drools 的新手,我无法访问包内的 DRL 文件。和我想的一样。我的项目规则层次结构是这样的
我尝试使用以下代码访问 DRL 文件:
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add( ResourceFactory.newClassPathResource( "neu/als/KnowledgeLevel", getClass() ), ResourceType.DRL );
KnowledgeBuilderErrors errors = kbuilder.getErrors();
if( errors.size() > 0 )
{
for( KnowledgeBuilderError error : errors )
{
System.err.println( error );
}
throw new IllegalArgumentException( "Could not parse knowledge." );
}
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
return kbase;
这是导致错误的原因:
java.lang.RuntimeException: Unable to get LastModified for ClasspathResource
at org.drools.io.impl.ClassPathResource.getLastModified(ClassPathResource.java:204)
at org.drools.io.impl.ClassPathResource.getInputStream(ClassPathResource.java:141)
at org.drools.compiler.DrlParser.parse(DrlParser.java:145)
at org.drools.compiler.DrlParser.parse(DrlParser.java:139)
at org.drools.compiler.PackageBuilder.drlToPackageDescr(PackageBuilder.java:477)
at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:466)
at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:694)
at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:51)
at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:40)
at com.neu.als.thesis.units.InferenceEngine.readKnowledgeBase(InferenceEngine.java:52)
at com.neu.als.thesis.web.controllers.FLTController.evaluateFLT(FLTController.java:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:444)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:432)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:946)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:848)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:822)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: 'neu/als/KnowledgeLevel.drl' cannot be opened because it does not exist
at org.drools.io.impl.ClassPathResource.getURL(ClassPathResource.java:165)
at org.drools.io.impl.ClassPathResource.getLastModified(ClassPathResource.java:177)
... 40 more
我做错了什么?
更新:
这是我的 web.xml
<servlet>
<servlet-name>ThesisProject</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ThesisProject</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/ThesisProject-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
和我的bean配置
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.neu.als.thesis.web.controllers" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
添加了一些配置
最佳答案
您的知识库是使用“neu/als/KnowledgeLevel”作为类路径构建的,而根据您的目录结构,正确的路径应该是“com/neu/als/KnowledgeLevel”。
我不希望 src/main/rules 位于项目类路径中,这也可能影响这一点。
我通常将我的规则保存在 src/main/resources 下,以便 Maven 将它们构建到类路径中。
关于包上的 Drools DRL 文件无法读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19554361/
使用 Drools 7.6.0(尽管我可以升级到更新的版本)。 我有一个由应用程序使用的核心库组成的系统。核心库在 common.drl 文件中定义一些通用规则、类型和全局变量,然后应用程序在另一个
我正在尝试用 drools drl 语言编写规则,我想做类似 !(A && B) 的事情,但它似乎不喜欢 !运算符或单词 not。我正在努力寻找关于流口水的好文档 请参阅下面的示例代码: rule
我有一个 drl 文件,需要正确的格式(包括缩进)。有这个插件吗? 最佳答案 您可以使用drools plugin for Eclipse或JBoss tools (包括 drools 插件)。 关于
我是 drools 的新手,我无法访问包内的 DRL 文件。和我想的一样。我的项目规则层次结构是这样的 我尝试使用以下代码访问 DRL 文件: KnowledgeBuilder kbuilder =
Drools 现在拥有对 DMN(决策模型和表示法)的完整运行时支持。 DMN 文件现在是一种 Assets ,可以添加到任何 kjar 中执行。 我的想法是 Drools 规则是非标准/专有的,如
我在这里遇到一个问题,在我在第一条规则上将对象设置为“FAILED”后,但在运行第二条规则时,该值仍然指向原始值“PASS”。请注意该值是从 kie 客户端传递的。 rule "1st rul
我必须使用单独的 drl 文件为不同的类启动 drools。 我的第一个代码如下所示: KieServices ks = KieServices.Factory.get();
我要用流口水做一些统治的事情。这是我第一次使用这个工具,出于功能需求,我认为需要在 drl 文档中定义一个权重数据结构。 我必须使用“类 java”语法(目前我什至不知道是否还有其他类型的语法)。 有
我对这个 drools 员工是全新的。因此我在这里遇到了一些麻烦。 rule "Raise the alarm when we have one or more fires" when exi
Drools - 如何从具有不同事实的多个 DRL 文件中触发多个规则? 我是 Drools 的新手。我有多个事实,每个都与不同的 DRL 文件相关联。如何从单个 Java 类或单个 session
我正在使用 Drools 7 将字符串传递到 drools 规则中: public static void main(String[] args) { log("Starting");
package com.example.drools; global Integer count; // I want to initialize this count variable with
我开始流口水了。我收到类路径错误。不确定,我在这里缺少什么。有什么提示吗? 主类 KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnow
我正在尝试编写规则来限制每个员工在一个月内完成夜类的次数。契约(Contract)要求是员工在 28 个白类周期内总共上夜类的时间不得超过 5 个”。 我已经厌倦了使用以下方法,但效果有限。欢迎任何建
我正在我的 DRL 上定义下一个函数 function void embargarMultiplesCuentasJudicial(ArrayList cuentas, Embargo embargo
我需要提供 drl 文件的下载选项。那么我应该提供什么MIME类型来下载.drl文件。我找不到 .drl 的类型。在这种情况下请帮助我。 最佳答案 A DRL file is simply a tex
我正在寻找有关以下 DRL 文件的改进方法的任何建议,以强制执行一定数量的轮类。我当前的方法通过 int TotalInt 值来划分员工的 ShiftAssignment 计数总数。需要一个基于规划元
我刚刚了解了业务规则、.drl 文件、规则引擎和 Drools。在探索过程中,我意识到所有这些条件和事实检查也可以在 Java 程序中完成,那么为什么我们需要编写 .drl 文件和单独有一个规则引擎。
我是 Drools 的新手。我想知道是否可以使用某种可以在 Windows 命令行(shell/cmd)中输入的命令来编译 .drl 文件。我查看了 drools 发行版附带的二进制文件,但我无法找到
我目前开始使用 jbpm/drools 并尝试使用“业务规则任务”从我的 DRL 修改一些流程变量。我尝试了以下流程,该流程声明了一个“MyCustomObject”类型的变量“var”。 关注 th
我是一名优秀的程序员,十分优秀!