- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建一个通过注入(inject)集成 kie (drools 6) 的 Web (spring-mvc) 应用程序。我使用 kie workbench 创建工作流程,进行编译和部署。我已在项目的 pom.xml 中添加了对此工件的引用,并按照 this blog post 添加了本地 kie-workbench 存储库并且它工作正常(将工件作为我的 maven/spring 项目中的依赖项拉入)。我想做的是将 kiesession 作为依赖项注入(inject)到我的一项服务中,并带有以下代码片段 -
@Service
public class TniServiceImpl implements TniService {
@Inject
@KSession("tniSession")
private KieSession tniSession;
...
}
在我的 root-context.xml 中,我还添加了 kie 命名空间以及对 xsd 的引用。我添加了 org.kie.spring.KModuleBeanFactoryPostProcessor 以及每个 drools 文档。我正在尝试使 CDI 注入(inject)适用于 KSession 扫描和注入(inject)(它已经适用于同一项目中的其他组件,使用 @Inject)。到目前为止,我总是收到“找不到依赖关系的 [org.kie.api.runtime.KieSession] 类型的合格 bean”错误。看起来 spring 无法扫描其中可用的 kie 模块和 session 。需要以下帮助 -
我的环境如下 -
我已经浏览了以下链接,但没有运气(大多数情况下他们并没有尝试做我所做的事情) -
如果有人能指导我了解这里可能缺少的部分,或者除了在 spring 配置文件中显式定义所有 kmodules/ksessions 之外别无选择,我将不胜感激。
最佳答案
我遇到了同样的问题,并在这里找到了解决方案:http://drools.46999.n3.nabble.com/Spring-4-0-amp-Drools-6-0-1-Integration-issue-td4028052.html
基本上,您需要注入(inject) ApplicationContext 而不是 kieSession 并手动获取 xml bean。
TniServiceImpl.java
@Service
public class TniServiceImpl implements TniService {
@Inject
ApplicationContext context;
KieSession kieSession;
@PostConstruct
public void postConstruct(){
kieSession = (KieSession) context.getBean("ksession1");
}
...
}
根上下文.xml
<kie:kmodule id="kmodule1">
<kie:kbase name="kbase1">
<kie:ksession name="ksession1" />
</kie:kbase>
</kie:kmodule>
<bean id="kiePostProcessor" class="org.kie.spring.KModuleBeanFactoryPostProcessor" />
希望这有帮助。
更新:
实现此目的的另一种方法是保持 xml 相同,而不是尝试注入(inject) KieSession,而是注入(inject) KieBase。然后,使用 KieBase 实例创建新的 KieSession。
@Service
public class TniServiceImpl implements TniService {
@Autowired
private KieBase kbase;
/* inside some method */
@RequestMapping(method=RequestMethod.GET)
public @ResponseBody Data getData() {
KieSession ksession = kbase.newKieSession();
...
}
}
关于spring - drools-6 (kie) 自动扫描(来自 spring)来自 kie 工作台部署工件的模块和 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21303349/
最近,我一直在尝试清理我的openGl渲染。我已经有一段时间了,但是从来没有真正考虑过。这是一个屏幕截图: 经过一些研究,我一直无法弄清楚它到底出了什么问题。我在OSX上使用OpenGl,但在其他系统
我尝试使用 glDrawArray 和 GL_TRIANGLE_STRIP 渲染纹理网格,但绘制时存在伪影,但在屏幕上分布不均匀。 Screenshot of the problem. 这是我使用的代
尝试使用 Github 的 beta 操作,我有两项工作,一项负责构建代码,另一项负责部署代码。但是,我似乎无法在部署作业中获取构建工件。 我最新的尝试是为每个作业手动设置具有相同卷的容器镜像,根据文
我是 Azure DevOps(托管代理)新手,正在尝试使用 Azure Pipelines 通过 Ant 构建我的 Java Web 应用程序 下面是管道文件 trigger: - azure-pi
我最近重新配置了 TeamCity 构建配置,以利用分支功能将相同的构建配置应用于同一存储库中的多个分支。 现在,我正在尝试设置一个自动构建脚本,该脚本可以从 TeamCity 中提取最新的工件,但仅
我通过 FFMPEG 和 OpenMAX 使用硬件编码。 如果我使用 FFmpeg h264_omx 作为 VideoWriter 的后端,我会得到图像 like this .颜色显然有点混合。 其他
我有一个 iPhone 应用程序,它有一个基于 TableView 的数据输入屏幕,带有一个切换开关,打开时会显示表格另一部分中的所有行。 有时,当应用程序首次加载时,通常是当它从手机中完全删除时,除
我在每次构建结束时归档工件。我有 https://wiki.jenkins-ci.org/display/JENKINS/Archived+Artifact+Url+Viewer+PlugIn安装。
我在 vsreport 虚拟模式下使用 ListView ,有两列,在填充列表后,选择一行,然后选择其他行,之前选择的行上留下了一个工件,请参见下图。如何解决这个问题? 这是我从数组获取数据的代码 p
我有一个巨大的遗留 EAR 项目。当前的构建过程使用 Ant,我正在尝试转换为 gradle。 旧的 Ant 构建使用单个源文件夹,所有内容都在其中(EJB 和 WAR 代码一起);然后 Ant 使用
我们有一个 ivy 存储库,我们使用 gradle 进行依赖管理和构建框架。当一个工件被确定为生产就绪时,我们不想再次构建它,所以我们只想通过一个利用 Gradle 和工具 API 来完成大部分工作的
我有一个 gradle 构建,它必须将预构建的 jar 文件发布为工件。由于某种原因,它没有被拾取。这是重现它的简化版本: 文件夹内容: settings.gradle build.gradle so
是否有人编写过一个查询来同时监视所有 BizTalk 工件。 我的查询不起作用,而且我似乎无法完成它: 这是我的: select RL.Name AS rlName , ('Url:
我最近学习了如何使用 grailsApplication.addArtefact(java.lang.String artefactType, GrailsClass artefactGrailsCl
我想在 Bamboo 构建结束时运行内联脚本任务,以将一些工件复制到网络共享。请问如何在此脚本中引用工件输出目录? Windows 环境(如果这有影响的话)。 最佳答案 您需要configure Ar
我想要一个工件名称,例如game-1.0.%BuilNumber%.jar 其中 BuildNumber 是 teamcity 构建的编号。 我正在使用 gradle 来构建工件。使用该工具是否可行,
在 SBT 中,如果我有一个任务要生成包含一堆文件的 zip/jar/war,我会使用 Defaults.packageTaskSettings 方法来设置该任务。它看起来如下: object Bui
我一直在使用 TeamCity 来启动和运行 CI 环境。 我开始关注 Troy Hunt 的 'You're deploying wrong' ,这非常有用,但是我想将打包和部署分成 2 个单独的步
故事 我已经在 OpenGL 中编码大约一年了(在相同的硬件上),我最近才得到像上图中那样的工件。它们在短时间内(几分钟)连续运行我的程序后出现,并出现在任何地方:从写字板(见图片)到我的桌面和任务栏
我使用以下代码在代码中创建了一个 UITableView: // no xib tableView = new UITableView( new RectangleF(0,0, this.View.F
我是一名优秀的程序员,十分优秀!