JBoss Drools业务规则管理系统jbrms需要在JBoss应用服务器下运行,如果需要在Tomcat下需要修改一些配置
drools-jbrms需要JDK1.5或以上版本,本文以drools 4.0.7的drools-jbrms包在Tomcat 6.0下部署为例
第1步
按照JBoss官方提供的文档处理
1. 删除war包中的el-api.jar
2. 删除Tomcat的lib目录下的jsf-api.jar和jsf-impl.jar(本来不存在就不用管了)
3. 从http://download.jboss.org/drools/dependencies/jboss_jsf_libs.zip下载JSF的jar包
4. 将下载后的jboss_jsf_libs.zip解压到C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\drools-jbrms\WEB-INF\lib目录下
(或者将下载后的jboss_jsf_libs.zip解压到Tomcat的lib目录下)
第2步
启动Tomcat.(注意,这里我是在Tomcat\bin目录下用tomcat.exe启动的,如果不是这种方式repository的位置不同)
drools-jbrms会在TOMCAT_HOME目录下新建repository目录(包括很多子目录),同时会报无法启动的异常。异常信息为Caused by: javax.jcr.RepositoryException: internal error: failed to read custom node type definitions stored in custom_nodetypes.xml: Premature end of file.: Premature end of file
(alternative)启动Tomcat。(注意,这里我是在Tomcat\bin目录下用startup.bat启动的,如果不是这种方式repository的位置不同)
drools-jbrms会在Tomcat的bin目录下新建repository目录(包括很多子目录),同时会报无法启动的异常。异常信息为Caused by: javax.jcr.RepositoryException: internal error: failed to read custom node type definitions stored in custom_nodetypes.xml: Premature end of file.: Premature end of file.
第3步
将本文提供的custom_nodetypes.xml覆盖Tomcat下的bin\repository\repository\nodetypes的同名文件。
第4步
重新启动
原因:drools-jbrms包含的某些功能在Tomcat下有问题,生成custom_nodetypes.xml时没有生成文件内容,所以报错。从网上查询,最迟2007年就有人报这个问题了。看来JBoss的对于非JBoss应用服务器的兼容问题考虑不多。
参考链接:http://blog.csdn.net/zhouxianli/archive/2008/08/21/2805991.aspx
<?xml version="1.0" encoding="UTF-8"?>
<nodeTypes xmlns:drools="http://www.jboss.org/drools-repository/1.0" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:fn_old="http://www.w3.org/2004/10/xpath-functions" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:rep="internal" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace">
<nodeType hasOrderableChildNodes="false" isMixin="false" name="drools:categoryNodeType" primaryItemName="">
<supertypes>
<supertype>mix:referenceable</supertype>
<supertype>nt:hierarchyNode</supertype>
</supertypes>
<childNodeDefinition autoCreated="false" defaultPrimaryType="drools:categoryNodeType" mandatory="false" name="*" onParentVersion="COPY" protected="false" sameNameSiblings="false">
<requiredPrimaryTypes>
<requiredPrimaryType>drools:categoryNodeType</requiredPrimaryType>
</requiredPrimaryTypes>
</childNodeDefinition>
</nodeType>
<nodeType hasOrderableChildNodes="false" isMixin="false" name="drools:packageNodeType" primaryItemName="">
<supertypes>
<supertype>drools:versionableNodeType</supertype>
<supertype>nt:folder</supertype>
</supertypes>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="*" onParentVersion="COPY" protected="false" requiredType="undefined"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:compiledPackage" onParentVersion="COPY" protected="false" requiredType="Binary"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:externalURI" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:header" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="true" mandatory="true" multiple="false" name="drools:archive" onParentVersion="COPY" protected="false" requiredType="Boolean">
<defaultValues>
<defaultValue>false</defaultValue>
</defaultValues>
</propertyDefinition>
<childNodeDefinition autoCreated="false" defaultPrimaryType="" mandatory="false" name="*" onParentVersion="IGNORE" protected="false" sameNameSiblings="false">
<requiredPrimaryTypes>
<requiredPrimaryType>drools:versionableAssetFolder</requiredPrimaryType>
</requiredPrimaryTypes>
</childNodeDefinition>
</nodeType>
<nodeType hasOrderableChildNodes="false" isMixin="false" name="drools:assetNodeType" primaryItemName="">
<supertypes>
<supertype>drools:versionableNodeType</supertype>
</supertypes>
<propertyDefinition autoCreated="false" mandatory="false" multiple="true" name="drools:categoryReference" onParentVersion="COPY" protected="false" requiredType="Reference">
<valueConstraints>
<valueConstraint>drools:categoryNodeType</valueConstraint>
</valueConstraints>
</propertyDefinition>
<propertyDefinition autoCreated="false" mandatory="true" multiple="false" name="drools:packageName" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:dateExpired" onParentVersion="COPY" protected="false" requiredType="Date"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:dateEffective" onParentVersion="COPY" protected="false" requiredType="Date"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="*" onParentVersion="COPY" protected="false" requiredType="undefined"/>
<propertyDefinition autoCreated="true" mandatory="true" multiple="false" name="drools:archive" onParentVersion="COPY" protected="false" requiredType="Boolean">
<defaultValues>
<defaultValue>false</defaultValue>
</defaultValues>
</propertyDefinition>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:attachmentFileName" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:binaryContent" onParentVersion="COPY" protected="false" requiredType="Binary"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:content" onParentVersion="COPY" protected="false" requiredType="String"/>
</nodeType>
<nodeType hasOrderableChildNodes="false" isMixin="false" name="drools:versionableAssetFolder" primaryItemName="">
<supertypes><supertype>mix:versionable</supertype><supertype>nt:folder</supertype></supertypes>
<childNodeDefinition autoCreated="false" defaultPrimaryType="" mandatory="false" name="*" onParentVersion="IGNORE" protected="false" sameNameSiblings="false">
<requiredPrimaryTypes>
<requiredPrimaryType>drools:versionableNodeType</requiredPrimaryType>
</requiredPrimaryTypes>
</childNodeDefinition>
</nodeType>
<nodeType hasOrderableChildNodes="false" isMixin="false" name="drools:versionableNodeType" primaryItemName="">
<supertypes>
<supertype>mix:versionable</supertype>
<supertype>nt:hierarchyNode</supertype>
</supertypes>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:stateReference" onParentVersion="COPY" protected="false" requiredType="Reference">
<valueConstraints>
<valueConstraint>drools:stateNodeType</valueConstraint>
</valueConstraints>
</propertyDefinition>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:checkinComment" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:createdDate" onParentVersion="COPY" protected="false" requiredType="Date"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:versionNumber" onParentVersion="COPY" protected="false" requiredType="Long"/>
<propertyDefinition autoCreated="false" mandatory="true" multiple="false" name="drools:title" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="true" multiple="false" name="drools:lastModified" onParentVersion="COPY" protected="false" requiredType="Date"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:lastContributor" onParentVersion="COPY" protected="false" requiredType="String">
<defaultValues>
<defaultValue/>
</defaultValues>
</propertyDefinition>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:creator" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:type" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:source" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:subject" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:relation" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:rights" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:coverage" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="false" multiple="false" name="drools:publisher" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="true" multiple="false" name="drools:description" onParentVersion="COPY" protected="false" requiredType="String"/>
<propertyDefinition autoCreated="false" mandatory="true" multiple="false" name="drools:format" onParentVersion="COPY" protected="false" requiredType="String"/>
</nodeType>
<nodeType hasOrderableChildNodes="false" isMixin="false" name="drools:stateNodeType" primaryItemName="">
<supertypes>
<supertype>mix:referenceable</supertype>
<supertype>nt:hierarchyNode</supertype>
</supertypes>
</nodeType>
</nodeTypes>
分享到:
相关推荐
drools的workbench平台与kie-server的整个打包,通过tomcat8运行,搞了两天终于搞好了,drools-7.7.0目前界面显示还有问题,因此通过drools-7.5.0版本来运行,服务启动后可以通过代码的方式发送命令来执行规则引擎
dools是一款开源规则引擎,drools-workbench是它的工作台web程序,可以编译,打包,发布规则,kie-server是可以运行规则的服务器程序, 两个服务单独部署,用户可以通过通过http请求发送数据,然后返回规则额匹配...
dools是一款开源规则引擎,drools-workbench是它的工作台web程序,可以编译,打包,发布规则,kie-server是可以运行规则的服务器程序, 两个服务单独部署,用户可以通过通过http请求发送数据,然后返回规则额匹配...
标题中的"drools-wb-7.10 tomcat 安装包"指的是Drools Workbench的一个版本,这是Red Hat公司开发的一款基于Java的工作台,用于规则引擎Drools和决策服务KieServer的管理和开发。Drools是一款强大的业务规则管理系统...
6. **REST API**:通过RESTful接口,kie-drools-wb能够与其他系统交互,例如,部署或更新规则,获取规则执行结果等。 7. **报表和监控**:kie-drools-wb还提供了执行日志和性能监控工具,帮助分析规则的执行效果和...
在部署drools到Tomcat服务器时,需要进行一系列的配置步骤,以确保drools的工作台(kie-drools-wb)和服务端(kie-server)能够正常运行。下面将详细介绍这个过程。 首先,你需要下载drools的版本7.5.0及其对应的...
要部署Drools Workbench,首先需要将解压后的kie-drools-wb应用文件夹复制到Tomcat的webapps目录下。然后,确保Tomcat服务器已正确配置,包括JDK的路径设置、CATALINA_HOME环境变量以及服务器端口的设置。启动Tomcat...
"drools-distribution-7.9.0.Final&spring-drools-demo" 是一个综合示例,旨在展示如何在实际项目中利用 Drools 和 Spring 进行协同工作。 首先,了解 Drools 的核心概念至关重要。Drools 包括规则定义(Rule)、...
这个压缩包“drools-5.0-bin.zip”包含了Drools 5.0版本的所有核心组件和必要的库,使得开发者能够方便地集成和使用Drools进行规则驱动的系统开发。 1. **drools-core-5.0.1.jar**: 这是Drools的核心模块,提供了...
drools 的Drools Workbench 运行时所需jar包 copy following libs into TOMCAT_HOME/lib * btm-2.1.4.jar * btm-tomcat55-lifecycle-2.1.4.jar * h2-1.3.161.jar * jta-1.1.jar * slf4j-api-1.7.2.jar * slf4j...
Drools-Guvnor 规则引擎使用指南 Drools-Guvnor 是一个基于 Java 的规则引擎,可以用于构建业务规则管理系统。下面是 Drools-Guvnor 的使用说明和知识点总结。 规则引擎 Drools-Guvnor 的基本概念 * Drools-...
drools-core-4.0.4.jar drools-core-4.0.4.jar
源码:\drools-distribution-7.7.0.Final\sources\drools-core-7.7.0.Final-sources.jar、 jar包:\drools-distribution-7.7.0.Final\binaries\drools-core-7.7.0.Final.jar、 API:\drools-distribution-7.7.0....
drools-templates-5.4.0.Final.jar
jboss 规则引擎 drools库。 api,core,compiler,jsr94 drools-compiler-5.1.1.jar
drools-all-jdk1.4-2.1.jar
drools-persistence-jpa-5.2.0.Final.jar drools
本文将深入探讨Drools的核心特性,以及如何在实际项目中应用Drools-distribution-7.5.0.Final这一版本。 1. **Drools简介** Drools是JBOSS的一款企业级规则引擎,它基于规则推理和决策模型,允许开发者将业务规则...