- 浏览: 53577 次
文章分类
最新评论
-
蒙奇君杰:
煎蛋就是幸福 写道我想说,lz你英语水平真不咋的,错误信息提示 ...
tomcat在Debug模式下无法启动解决办法 -
煎蛋就是幸福:
我想说,lz你英语水平真不咋的,错误信息提示的是在45秒内启动 ...
tomcat在Debug模式下无法启动解决办法
VisualRules接口调用(三)
一、Java类通过Servlet调用-json格式
在Eclipse中制作一个Test6类,main中接收参数,通过servlet服务调用student.add规则包。显示返回结果。
1.配置web.xml
设置DBRuleServerServlet的参数xmltype的值为json,如下:
<servlet>
<servlet-name>DBRuleServerServlet</servlet-name>
<servlet-class>com.flagleader.webserver.DBRuleServerServlet</servlet-class>
<init-param>
<param-name>xmltype</param-name>
<param-value>json</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DBRuleServerServlet</servlet-name>
<url-pattern>/servlet/dbruleservices.servlet</url-pattern>
</servlet-mapping>
设置好上述才能调用:
http://localhost:8880/webrule/servlet/dbruleservlet.servlet
查看 Java类通过Servlet调用-xml格式 的2到7小点操作,
即(2、配置说明 3、解析web.xml 4、编译文件存放目录 5、登录webrule管理平台 6、webrule管理平台 添加任务和添加服务 7、查看任务和服务)
2.传输数据格式类型
参数streamtype默认为1,可以不进行配置,可以根据需求配置传输数据格式类型,0表示原始字符串格式。1表示加密压缩字符串。2表示压缩字符串。3表示压缩字节。4表示GZIP压缩流。客户端传输时通过Property.getInstance().setServerSendtype(...)设置传输数据格式类型,默认为1,即Property.getInstance().setServerSendtype(Property.ENCRYZIPSTRINGSEND),其中Property.RAWSEND的值为0,Property.ZIPSTRINGSEND的值为2, Property.ZIPBYTESEND的值为3,Property.GZIPSEND的值为4,其中客户端传输数据格式类型为1时,参数streamtype的参数值可以是0或1,如下:
参数streamtype默认为1,如下:
<servlet>
<servlet-name>DbServletServlet</servlet-name>
<init-param>
<param-name>streamtype</param-name>
<param-value>1</param-value>
</init-param> <servlet-class>com.flagleader.webserver.DbServletServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DbServletServlet</servlet-name>
<url-pattern>/servlet/dbruleservlet.servlet</url-pattern>
</servlet-mapping>
3.添加java测试类
在java工程中添加一个java类,名为Test6.java,其内容编辑如下:
package com.flagleader;
import java.util.List;
import com.flagleader.engine.Property;
import com.flagleader.engine.RuleService;
import com.flagleader.json.JsonServerServletFactory;
public class Test6 {
public static void main(String[] args) {
try {
//设置加密方式 默认等于 Property.ENCRYZIPSTRINGSEND
Property.getInstance().setServerSendtype(Property.ENCRYZIPSTRINGSEND);
// 工厂模式,该接口可以用在本地调用,以及服务调用
RuleService engine = new JsonServerServletFactory("http://localhost:8880/webrule/servlet/dbruleservlet.servlet").getRuleService();
// 以dto形式为规则传参
Student student = new Student(1, "李丽", 12, '男', "六年级", "无");
// 执行规则,其中"student.add"为规则全名,student为传入参数
engine.executeBeans("student.add", student);
// 判断engine.get("studentList")是不是集合类型
if (engine.get("studentList").getClass().isAssignableFrom(
java.util.ArrayList.class)) {
// 执行完规则后,获取数据,"studentList"必须和规则中取内存表数据的变量名一致
List list = (List) engine.get("studentList");
// 由于规则中采用的是list<list>类型,需要做两次转换
List list1 = (List) list.get(0);
// 循环次数为对象中字段个数
for (int i = 0; i < 6; i++) {
System.out.print(list1.get(i) + "\t");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.执行java测试类
点击执行后,可以看到如下结果:
说明已经调用了student.add规则包,并且根据传入的参数,返回处理结果以list<list>形式展示。
同理,任何的其他java类,只需加入上述的代码,即可完成调用规则包的工作。
二、Java类通过Servlet调用-json格式(调用指定版本)
1.配置web.xml
设置DBRuleServerServlet的参数xmltype的值为json,如下:
<servlet>
<servlet-name>DBRuleServerServlet</servlet-name>
<servlet-class>com.flagleader.webserver.DBRuleServerServlet</servlet-class>
<init-param>
<param-name>xmltype</param-name>
<param-value>json</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DBRuleServerServlet</servlet-name>
<url-pattern>/servlet/dbruleservices.servlet</url-pattern>
</servlet-mapping>
设置好上述才能调用:
http://localhost:8880/webrule/servlet/dbruleservlet.servlet
查看 Java类通过Servlet调用-xml格式 的2到7小点操作,即(2、配置说明 3、解析web.xml 4、编译文件存放目录 5、登录webrule管理平台 6、webrule管理平台 添加任务和添加服务 7、查看任务和服务)
2.传输数据格式类型
参数streamtype默认为1,可以不进行配置,可以根据需求配置传输数据格式类型,0表示原始字符串格式。1表示加密压缩字符串。2表示压缩字符串。3表示压缩字节。4表示GZIP压缩流。客户端传输时通过Property.getInstance().setServerSendtype(...)设置传输数据格式类型,默认为1,即Property.getInstance().setServerSendtype(Property.ENCRYZIPSTRINGSEND),其中Property.RAWSEND的值为0,Property.ZIPSTRINGSEND的值为2, Property.ZIPBYTESEND的值为3,Property.GZIPSEND的值为4,其中客户端传输数据格式类型为1时,参数streamtype的参数值可以是0或1,在没有设置参数streamtype的情况下,内部约定为1,如下:
<servlet>
<servlet-name>DbServletServlet</servlet-name>
<init-param>
<param-name>streamtype</param-name>
<param-value>1</param-value>
</init-param> <servlet-class>com.flagleader.webserver.DbServletServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DbServletServlet</servlet-name>
<url-pattern>/servlet/dbruleservlet.servlet</url-pattern>
</servlet-mapping>
3.新建版本库
访问webrule下的servser的index.jsp,即
http://localhost:8880/webrule/server点击选项卡“规则执行版本”,右键点击左边窗体“规则库版本”,选择“新建版本库”,如下图:
弹出窗体“工程信息”,工程名称文本框中输入1.1,如下图:
查看新建的1.1版本库,如下图:
复制E:\rscfile\1.1目录下的student文件夹到
D:\VisualRules\Tomcat\webapps\webrule\WEB-INF\rsc\1.1目录下,如下图:
4.添加java测试类
在java工程中添加一个java类,名为Tes7.java,其内容编辑如下:
package com.flagleader;
import java.util.List;
import com.flagleader.engine.Property;
import com.flagleader.engine.RuleService;
import com.flagleader.json.JsonServerServletFactory;
public class Test7 {
public static void main(String[] args) {
try {
//设置加密方式 默认等于 Property.ENCRYZIPSTRINGSEND
Property.getInstance().setServerSendtype(Property.ENCRYZIPSTRINGSEND);
// 工厂模式,该接口可以用在本地调用,以及服务调用
RuleService engine = new JsonServerServletFactory("http://localhost:8880/webrule/servlet/dbruleservlet.servlet").getRuleService();
//执行哪个版本下的编译文件
engine.setLibraryName("1.1");
// 以dto形式为规则传参
Student student = new Student(1, "李丽", 12, '男', "六年级", "无");
// 执行规则,其中"student.add"为规则全名,student为传入参数
engine.executeBeans("student.add", student);
// 判断engine.get("studentList")是不是集合类型
if (engine.get("studentList").getClass().isAssignableFrom(
java.util.ArrayList.class)) {
// 执行完规则后,获取数据,"studentList"必须和规则中取内存表数据的变量名一致
List list = (List) engine.get("studentList");
// 由于规则中采用的是list<list>类型,需要做两次转换
List list1 = (List) list.get(0);
// 循环次数为对象中字段个数
for (int i = 0; i < 6; i++) {
System.out.print(list1.get(i) + "\t");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
5.执行java测试类
点击执行后,可以看到如下结果:
说明已经调用了student.add规则包,并且根据传入的参数,返回处理结果以list<list>形式展示。
同理,任何的其他java类,只需加入上述的代码,即可完成调用规则包的工作。
发表评论
-
规则引擎Visual Rules Solution开发基础教程【连载24】-- 使用VisualRules规则引擎实现业务逻辑
2016-04-29 09:33 870使用VisualRules规则引擎实现业务逻辑 ... -
规则引擎Visual Rules Solution开发基础教程【连载23】--规则协同管理之系统管理
2016-04-22 15:44 964规则协同管理之系统管 ... -
规则引擎Visual Rules Solution开发基础教程【连载22】--规则协同管理之信息维护
2016-01-25 09:12 974规则协同管理之信息维护 信息维护只有两个部分 ... -
规则引擎Visual Rules Solution开发基础教程【连载21】--规则协同管理之权限管理
2016-01-18 09:47 1286规则协同管理之权限管理 权限管理由三部分组成 ... -
规则引擎Visual Rules Solution开发基础教程【连载20】--规则协同管理之规则管理
2016-01-11 09:48 1436规则协同管理之规则管理 一、规则上传 我们 ... -
规则引擎Visual Rules Solution开发基础教程【连载19】--规则协同管理介绍
2016-01-07 09:20 631规则协同管理介绍 一、简介 在团队开发项目 ... -
规则引擎Visual Rules Solution开发基础教程【连载18】-- Linux环境 安装配置说明
2015-12-21 10:15 1227Linux环境 安装配置说明 一、安装配置测试环境及版本 ... -
规则引擎Visual Rules Solution开发基础教程【连载17】--VisualRules接口调用(六)
2015-12-16 11:28 989VisualRules接口调用(六) ——Java类中含类 ... -
规则引擎Visual Rules Solution开发基础教程【连载16】--VisualRules接口调用(五)
2015-12-07 09:09 1350VisualRules接口调用(五) Java类中的List ... -
规则引擎Visual Rules Solution开发基础教程【连载15】--VisualRules接口调用(四)
2015-11-30 09:11 1025VisualRules接口调用(四) 一、Java类调用服务 ... -
规则引擎Visual Rules Solution开发基础教程【连载13】--VisualRules接口调用(二)
2015-11-16 10:31 894VisualRules接口调用(二) 接上一篇,下面介绍一下 ... -
规则引擎Visual Rules Solution开发基础教程【连载12】--VisualRules接口调用(一)
2015-11-09 10:25 1699VisualRules接口调用(一 ... -
规则引擎Visual Rules Solution开发基础教程【连载11】--WebService 搭建及调用
2015-11-02 10:15 1272WebService 搭建及调用 webs ... -
规则引擎Visual Rules Solution开发基础教程【连载10】--VisualRules的组成及执行原理
2015-10-26 17:41 1141VisualRules的组成及执行原理 在 ... -
规则引擎Visual Rules Solution开发基础教程【连载9】--VisualRules实例二(下)
2015-10-19 10:46 842VisualRules实例二(下) 书接上 ... -
规则引擎Visual Rules Solution开发基础教程【连载8】--VisualRules实例二(中)
2015-10-12 10:11 997VisualRules实例二(中) 上一篇 ... -
规则引擎Visual Rules Solution开发基础教程【连载7】--VisualRules实例二(上)
2015-10-08 11:45 933VisualRules实例二(上) ... -
规则引擎Visual Rules Solution开发基础教程【连载6】--VisualRules实例一
2015-09-28 11:22 617VisualRules实例一 以下通过一个 ... -
规则引擎Visual Rules Solution开发基础教程【连载5】--VisualRules深入了解
2015-09-21 10:02 1662VisualRules深入了解 通过前两篇的 ... -
规则引擎Visual Rules Solution开发基础教程【连载4】--VRS相关调用篇
2015-09-14 10:10 944VRS相关调用 一、Java类 ...
相关推荐
Visual Basic 6.0程序设计基础教程---李锦--大连理工大学出版社--2007.8.pdf
Visual C++程序开发范例宝典\14-16.rar Visual C++程序开发范例宝典\14-16.rar
《Visual C++开发GIS系统------开发实例剖析》书中代码
Visual Basic 6.0程序设计教程---曾强聪--中国水利水电出版社--2003.7.pdf
Visual C++程序设计案例教程-张荣梅-源代码+ppt
Visual-Rules规则引擎产品介绍-PPT课件.ppt
Visual C++程序设计案例教程-张荣梅-源代码-第五章
Visual+C++程序设计攻略教程--源代码Visual+C++程序设计攻略教程--源代码Visual+C++程序设计攻略教程--源代码
Visual C++程序设计案例教程-张荣梅-源代码-第三章 分章上传 1.Win32 AIP应用程序 2.MFC应用程序 建议初学者看这本书
《Visual FoxPro 9.0项目开发案例教程》-电子教案.rar
Visual C++程序设计案例教程-张荣梅-源代码-第一章 由于各章和在一起过大,故分章节上传
Visual C++程序设计案例教程-张荣梅-源代码-第二章 分章上传
Visual C++开发实战1200例--第一卷---刘锐宁著 的光盘源代码 mr 文件夹
Microsoft Visual Foxpro 6.0中文版教程--初级教程
Visual C++程序开发范例宝典\4-7.rar Visual C++程序开发范例宝典\4-7.rar
Visual C++程序开发范例宝典\10-11.rar Visual C++程序开发范例宝典\10-11.rar
Visual Basic 6.0程序设计教程--郭施祎 杜春玲--西北工业大学出版社--2008.1.pdf
Visual Basic程序开发范例宝典-调用画图程序
Visual C++程序设计教程-梁建武-电子教案