`
NIIT_zhu
  • 浏览: 47772 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多

在实际的开发过程中,往往对规则引擎的使用方式是:通过规则引擎配置规则,然后使用不同的开发语言来调用规则,下面我说一说Java和.Net是如何来调用规则包的

 

       Java调用规则

       Java调用规则有3种方式

       1:Java类调用规则包

       

首先在eclipsejava工程中,点击属性设置其路径。在其属性窗口的Java Build Path中设置Libraries,通过Add External JARs…加入VisualRules安装目录的lib下的engine.jarjakarta.jar,在通过Add External Class Folder…加入VisualRules安装目录下的rules目录。如下所示:

 


添加Java测试类

 

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

 

import com.flagleader.engine.RuleEngine;

 

import com.flagleader.engine.RuleEngineFactory;

 

public class TestHello {

 

         public static void main(String[] args) {

 

                   try {

 

                            RuleEngine engine = RuleEngineFactory.newInstance().getRuleEngine();

 

                            engine.put("name", "访问测试");

 

                            engine.excute("hello");// engine.excute("hello.rsc"); hellohello.rsc为它在导入的rules下的路径

 

                            System.out.println(engine.getString("welcome"));

 

                   } catch (Exception e) {

 

                            e.printStackTrace() ;

 

                   }

 

         }

 

}

 

执行java测试类

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



 

说明已经调用了hello规则包,并且根据传入的name值“访问测试”,返回处理结果是 hello+“访问测试”。

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

 

 

2Java类通过规则服务调用

 

首先需要查看服务器的Rule Engine Server服务是否开启,为了能够正常启动Rule Engine Server,首先需要设置Java路径:

 

设置JAVA_HOME变量

 

         windows环境中,设置系统的环境变量,添加一个JAVA_HOME变量,将其设置为VisualRules安装目录下的jre目录。

         如果已经安装了JDK,则可以设置为JDK的安装目录。


启动Rule Engine Server

         在系统的服务中启动Rule Engine Server服务:

 

 

 

 

设置java工程路径

         首先在eclipsejava工程中,点击属性设置其路径。在其属性窗口的Java Build Path中设置Libraries,通过Add External JARs…加入VisualRules安装目录的lib下的json-lib-2.3-jdk1.3.jar以及jdom.jar。如下所示:



 

添加Java测试类

 

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

 

import com.flagleader.engine.RuleService;

 

import com.flagleader.engine.impl.RuleServerPoolFactory;

 

public class HelloServer {

 

         public static void main(String[] args) {

 

                   try {

 

                            RuleServerPoolFactory factory = RuleServerPoolFactory.getFactory("localhost", 1508) ;

 

                            RuleService service = factory.getRuleService() ;

 

                            service.put("name","测试通讯");

 

                            service.execute("hello") ;

 

                            System.out.println(service.getString("welcome")) ;

 

                   } catch (Exception e) {

 

                            e.printStackTrace() ;

 

                   }

 

         }

 

}

 

执行java测试类

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



 

 

 

说明已经调用了hello规则包,并且根据传入的name值“访问测试”,返回处理结果是 hello+“测试通讯”。

 

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

3Java类通过SOAP调用

首先需要查看服务器的Apache Tomcat rules服务是否开启,同时需要保证缺省安装的Tomcat工程下面有个soap的工程:



 

 

 

注意要将生成在VisualRules的安装目录的rules目录下的hello.rsc复制到tomcatwebapps\soap\WEB-INFO\classes目录下,这样可以保证规则包可以通过axis访问。

 

启动Rule Engine Server

         在系统的服务中启动Apache Tomcat rules服务:



 

设置java工程路径

         首先在eclipsejava工程中,点击属性设置其路径。在其属性窗口的Java Build Path中设置Libraries,通过Add External JARs…加入VisualRules安装目录的lib下的json-lib-2.3-jdk1.3.jarjdom.jaraxis.jarcommons-discovery-0.2.jarcommons-logging.jarjaxrpc.jarmail.jarsaaj.jarwsdl4j-1.5.1.jarxerces.jarxml-apis.jar。如下所示:



 

添加Java测试类

 

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

 

import com.flagleader.engine.RuleService;

 

import com.flagleader.engine.impl.RuleSoapFactory;

 

public class HelloSoap {

 

         public static void main(String[] args) {

 

                   try {

 

                            RuleSoapFactory factory = new

 

                                     RuleSoapFactory("http://localhost:8880/soap/services/RuleSoap","") ;

 

                            RuleService service = factory.getRuleService() ;

 

                            service.put("name","测试通讯");

 

                            service.execute("hello") ;

 

                            System.out.println(service.getString("welcome")) ;

 

                   } catch (Exception e) {

 

                            e.printStackTrace() ;

 

                   }

 

         }

 

}

 

执行java测试类

 

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



说明已经调用了hello规则包,并且根据传入的name值“访问测试”,返回处理结果是 hello+“测试通讯”。

 

    .Net调用规则

.net调用规则目前只有一种方式

<!--StartFragment -->

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RuleEngine;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            RuleServerPoolFactory factory = RuleServerPoolFactory.getFactory("127.0.0.1",1508);
            RuleService service = factory.RuleService;
            service.put("name","测试访问");
            service.execute("hello");
            Console.WriteLine(service.getString("welcome"));
            Console.Read();
        }
    }
}

 

 

  • 大小: 82.1 KB
  • 大小: 184.6 KB
  • 大小: 74 KB
  • 大小: 31 KB
  • 大小: 108.6 KB
  • 大小: 204.6 KB
  • 大小: 45.2 KB
  • 大小: 32.3 KB
  • 大小: 148.7 KB
  • 大小: 227.8 KB
3
3
分享到:
评论
2 楼 NIIT_zhu 2013-06-18  
hello.rsc
闫昌盛 写道
没看懂,不明白

呵呵,这个是在规则引擎中配置好规则,并编译后,用Java或者是.Net来调用规则的说明
1 楼 闫昌盛 2013-06-18  
没看懂,不明白

相关推荐

    如何用.net调用java或net写的webservice

    如何用.net调用java或net写的webservice(遵循wsdl规则

    asp.net知识库

    动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个时间转换的问题,顺便谈谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和...

    顺丰单号、EMS 单号算法(规则 规律)Java版

    顺丰、EMS 单号算法 delphi 写的,里面部分变量可能是...算法与http://download.csdn.net/detail/jnwz159/2695670是一样的,应一位网友的要求"翻译"成了java版,内部没做优化,原先的需要自己改动的地方仍需自己优化

    JAVA上百实例源码以及开源项目源代码

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    JAVA上百实例源码以及开源项目

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    taobao-sdk-java-auto_1479188381469-20191021.jar

    钉钉 Java SDK 钉钉官方提供了统一的SDK,使用SDK可以便捷的调用服务端API。注意:此SDK包含原有...(2).NET SDK 需要依赖 .NET Framework 2.0及以上 (不支持Windows Phone平台)。 (3)Python SDK需要依赖python2

    java groovy整合

    1、eclipse安装groovy的插件。 2、创建java project。 3、把groovy-all-2.1.9.jar,加入...4、编写hello.groovy脚本文件,并在java代码中调用脚本文件 http://blog.csdn.net/bolg_hero/article/details/19077981

    JNI文档资料源码_2020_02_04.zip

    【Android NDK 开发】JNI 方法解析 ( C/C++ 调用 Java 方法 | 函数签名 | 调用对象方法 | 调用静态方法 ) I . 调用 Java 方法流程 II . 获取 jclass 对象 ( GetObjectClass ) III . 获取 jclass 对象 ( Find...

    java 面试题 总结

    JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变...

    CSharp_深入浅出全接触

    .NET平台将 C#作为其固有语言,重温了许多Java的技术规则。C#中也有一个虚拟机,叫做公用语言运行环境(CLR),它的对象也具有同样的层次。但是 C#的设计意图是要使用全部的Win32 API甚至更多。由于C#与 Windows的体系...

    uipath+vba.zip

    RPA,做过几个rpa项目,罗列总结自己常用得一些 uipath和vba常用方法 ...RPA机器人如同人类一样能够操作各种IT应用程序,如浏览器、Office软件、Java/.net等语言编写的程序、ERP软件(SAP/Oracle)等等

    使用JSR 303和AOP简化你的接口开发

    无论是Web调用还是智能设备APP调用,只要约定好参数形式和规则就能够协同开发。返回值用得最多的就是JSON形式。服务端除了保证正常的业务功能,还要经常对传进来的参数进行验证,例如某些参数不能为空,字符串必须...

    超级有影响力霸气的Java面试题大全文档

     JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要...

    XmlSerializer 常见问题疑难解答(MSDN)

    XmlSerializer 在程序中通过单个 API 调用来执行 XML 文档和对象之间的转换。转换的映射规则在 .NET 类中通过元数据属性来表示。这一编程模型带有自己的错误类别,开发人员需要了解如何诊断这些错误。例如,元数据...

    chatRoom 聊天室

    import java.net.ServerSocket; import java.net.Socket; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashSet; import javax.swing.JFrame; import javax.swing.JOptionPane; /*...

    毕业设计:asp.net基于工作流引擎的系统框架设计开发(源代码+论文)

    控制模型将信息模型、机构摩型和框架模型有机的结合在一起,它根据其中定义的业务规则来流转业务流程,控制模型是工作引擎的控制中心。图1是基于工作引擎的信息系统通用框架的结构图。 任务管理主要根据调度中心的...

    c#学习笔记.txt

    c#学习笔记(1) ...(Microsoft后来在完全面向.NET框架的开发语言集中加入了Visual J#.NET,算是对Java语言用户的一种照顾。) 有人说,选择C#意味着选择MS(在中国的程序员当中,这并不是件值得自豪的事...

    【04-面向对象(上)】

    •java.net.* , •java.io.*, •java.text.*, •java.sql.*, •java.awt.*, •java.swing.*. 使用构造器执行初始化 •构造器最大的用处就是在创建对象时执行初始化,系统会默认的进行初始化。 •如果...

    全能电子地图

    1、支持地图种类繁多:几乎包含所有主流在线地图,包括不仅限于谷歌、百度、高德、四维、微软、诺基亚、天地图、腾讯、ArcGIS、雅虎等地图,每... 19、Windows原生语言开发,比Java/.NET等语言开发的程序效率高几倍。

Global site tag (gtag.js) - Google Analytics