VisualRules接口调用(二)

一、Java类通过Servlet调用-xml格式


        webrule是VisualRules提供的web管理平台,在此webrule放在VisualRules安装目录下Tomcat下的webapps目录下的,如D:\VisualRules\Tomcat\webapps,启动Apache Tomcat rules,如下图:

1.配置web.xml


        配置webrules下的web.xml,既

        D:\VisualRules\Tomcat\webapps\webrule\WEB-INF\web.xml。
        参考:webrule\WEB-INF\web.xml。

配置的web.xml需注意配置如下信息:

<servlet>

       <description>

       </description>

       <display-name>RuleServlet</display-name>

       <servlet-name>RuleServlet</servlet-name>

    <servlet-class>com.flagleader.webrules.RuleServlet</servlet-clas>

       <init-param>

           <param-name>onlyregist</param-name>

           <param-value>true</param-value>

       </init-param>

       <init-param>

           <param-name>edition</param-name>

           <param-value>stan</param-value>

       </init-param>

       <load-on-startup>2</load-on-startup>

</servlet>

<servlet-mapping>

       <servlet-name>RuleServlet</servlet-name>

       <url-pattern>/servlet/readrule.servlet</url-pattern>

</servlet-mapping>

设置好上述才能调用:

http://localhost:8880/webrule/servlet/ruleservlet.servlet

配置说明:

对web.xml中的servlet说明文档webrule\WEB-INF\readme.txt。

解析web.xml:

..\webrule\WEB-INF\web.xml,《web.xml》解析.txt是对web.xml中的servlet的一一解释,能更好的确定需要配置的属性,可以精简web.xml文件。

编译文件存放目录:

将编译文件放在..\ webrule\WEB-INF\classes目录下,如下图:

2.登录webrule管理平台:

访问http://localhost:8880/webrule/server/,登录用户名默认是admin,密码是admin123,如下图:

3.webrule管理平台添加任务和添加服务:

登录后,点击选项卡“规则执行版本”中看到存放在..\ webrule\WEB-INF\classes目录下的编译文件(即4、编译文件存放目录),点击选项卡“规则执行版本”—“公用版本”,勾选上学生录入student.add,在点击添加到任务,如下图:

点击选项卡“规则执行版本”,点击右侧树状菜单中的“公用版本”,勾选上学生录入student.add,在点击添加到服务,如下图:

4.查看任务和服务:

点击选项卡“规则执行任务”,查看任务学生录入,如下图:

点击选项卡“规则执行服务”,查看服务学生录入,服务需要启动,如下图:

5.添加java测试类
在java工程中添加一个java类,名为Test4.java,其内容编辑如下:

package com.flagleader;

import java.io.File;

import java.util.ArrayList;

import java.util.List;

import com.flagleader.engine.RuleEngine;

import com.flagleader.engine.RuleEngineException;

import com.flagleader.engine.RuleEngineFactory;

import com.flagleader.engine.RuleEngineManager;

import com.flagleader.engine.RuleService;

import com.flagleader.engine.RuleServiceException;

import com.flagleader.engine.impl.LocalRuleServiceFactory;

import com.flagleader.engine.impl.RuleServerServletFactory;

/**

 * 调用指定目录下默认文件下的编译文件

 * 使用的接口是RuleService ,该接口可以用在本地调用,以及服务调用

 * servlet调用

 * @author Administrator*

 */

public class Test4 {
    public static void main(String[] args) {
       try {
           // 工厂模式,该接口可以用在本地调用,以及服务调用

           RuleService engine =new RuleServerServletFactory("http://localhost:8880/webrule/servlet/ruleservlet.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 (RuleServiceException e) {
           // TODO Auto-generatedcatch block

           e.printStackTrace();

       }

    }

}


6.执行java测试类
点击执行后,可以看到如下结果:

说明已经调用了student.add规则包,并且根据传入的参数,返回处理结果以list<list>形式展示。

同理,任何的其他java类,只需加入上述的代码,即可完成调用规则包的工作。

二、Java类通过Servlet调用-xml格式(调用指定版本)


完成 Java类通过Servlet调用-xml格式的1到7小点操作,

即(1、配置web.xml  2、配置说明  3、解析web.xml   4、编译文件存放目录  5、登录webrule管理平台 6、webrule管理平台添加任务和添加服务     7、查看任务和服务)


1.新建版本库

访问webrule下的servser的index.jsp,即

http://localhost:8880/webrule/server点击选项卡“规则执行版本”,右键点击左边窗体“规则库版本”,选择“新建版本库”,如下图:

弹出窗体“工程信息”,工程名称文本框中输入1.1,如下图:


查看新建的1.1版本库,我们可以看到“学生录入”,查看Java类通过Servlet调用-xml格式的4、编译文件存放目录,在此我们不是存放

D:\VisualRules\Tomcat\webapps\webrule\WEB-INF\classes目录,而是

D:\VisualRules\Tomcat\webapps\webrule\WEB-INF\rsc\1.1目录,这样在新建的1.1版本库中就能看到“学生录入”,如下图:

复制E:\rscfile\1.1目录下的student文件夹到

D:\VisualRules\Tomcat\webapps\webrule\WEB-INF\rsc\1.1目录下,如下图:

2.添加java测试类

在java工程中添加一个java类,名为Tes5.java,其内容编辑如下:

package com.flagleader;

import java.util.List;

import com.flagleader.engine.RuleService;

import com.flagleader.engine.RuleServiceException;

import com.flagleader.engine.impl.RuleServerServletFactory;

/**

 * 调用启动文件

 * 使用的接口是RuleService ,该接口可以用在本地调用,以及服务调用, servlet调用

 * 执行哪个版本下的编译文件。

 * 如engine.setLibraryName("1.1");

 * @author Administrator *

 */

public class Test5{
    public static void main(String[] args) {
       try {
           // 工厂模式,该接口可以用在本地调用,以及服务调用

           RuleService engine =new RuleServerServletFactory("http://localhost:8880/webrule/servlet/ruleservlet.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 (RuleServiceException e) {
           // TODO Auto-generatedcatch block

           e.printStackTrace();

       }

    }

}

3.执行java测试类

点击执行后,可以看到如下结果:


说明已经调用了student.add规则包,并且根据传入的参数,返回处理结果以list<list>形式展示。

同理,任何的其他java类,只需加入上述的代码,即可完成调用规则包的工作。

 产品试用下载链接:试用下载_Visual Rules (flagleader.com)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值