`
何必如此
  • 浏览: 55449 次
社区版块
存档分类
最新评论

规则引擎Visual Rules Solution开发基础教程【连载4】--VRS相关调用篇

阅读更多
VRS相关调用


一、Java类通过规则服务调用
         在Eclipse中制作一个HelloServer类,main中接收参数输入姓名,通过端口形式的规则服务调用hello规则包,显示返回的欢迎辞。
         首先需要查看服务器的Rule Engine Server服务是否开启,为了能够正常启动Rule Engine Server,首先需要设置Java路径:

1.设置JAVA_HOME变量
         在windows环境中,设置系统的环境变量,添加一个JAVA_HOME变量,将其设置为VisualRules安装目录下的jre目录。如果已经安装了JDK,则可以设置为JDK的安装目录。





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




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




4.添加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() ;
}
}
}

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





          说明已经调用了hello规则包,并且根据传入的name值“访问测试”,返回处理结果是 hello+“测试通讯”。
          同理,任何的其他java类,只需加入上述的代码,即可完成调用规则包的工作。


二、Java类通过SOAP调用
          在Eclipse中制作一个HelloSoap类,将姓名参数传递给规则服务,并调用hello规则包,显示返回的欢迎辞。
          首先需要查看服务器的Apache Tomcat rules服务是否开启,同时需要保证缺省安装的Tomcat工程下面有个soap的工程





          注意要将生成在VisualRules的安装目录的rules目录下的hello.rsc复制到tomcat的webapps\soap\WEB-INFO\classes目录下,这样可以保证规则包可以通过axis访问。
          在系统的服务中启动Apache Tomcat rules服务:




1.设置java工程路径
          首先在eclipse的java工程中,点击属性设置其路径。在其属性窗口的Java Build Path中设置Libraries,通过Add External JARs…加入VisualRules安装目录的lib下的json-lib-2.3-jdk1.3.jar、jdom.jar、axis.jar、commons-discovery-0.2.jar、commons-logging.jar、jaxrpc.jar、mail.jar、saaj.jar、wsdl4j-1.5.1.jar、xerces.jar、xml-apis.jar。如下所示:




2.添加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() ;
}
}
}

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




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

三、C#通过规则服务调用
          在VS中制作一个HelloServer类,将姓名参数传递给规则服务,并调用hello规则包,显示返回的欢迎辞。
1.新建C#工程
          在VS中,新建一个名为HelloServer的控制台应用程序的工程:




2.添加引用
          将RuleEngine.dll添加到引用中。该文件一般位于VisualRules安装目录的samples\notnet\RuleEngine\bin\Release目录下:




3.编写Program.cs
          代码如下,其中192.168.19.128为服务器地址:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RuleEngine;
namespace HelloServer
{
    class Program
    {
        static void Main(string[] args)
        {
            RuleServerPoolFactory factory = RuleServerPoolFactory.getFactory("192.168.19.128", 1508);
            RuleService service = factory.RuleService;
            service.put("name", "测试Socket访问");
            service.execute("hello");

            Console.WriteLine( service.getString("welcome") );
            Console.Read();
        }
    }
}

4.执行测试类
          点击执行后,看到执行结果如下,说明已经调用规则包成功:




四、C#通过SOAP调用
          在VS中制作一个HelloSoap类,将姓名参数传递给规则服务,并调用hello规则包,显示返回的欢迎辞。
1.新建C#工程
          在VS中,新建一个名为HelloSoap的控制台应用程序的工程:





2.添加引用
          将RuleEngine.dll添加到引用中。该文件一般位于VisualRules安装目录的samples\notnet\RuleEngine\bin\Release目录下:




3.添加服务引用




          然后输入Soap服务所在的地址,在地址栏中输入http://192.168.1.121:8880/soap/services/RuleSoap?wsdl 。
          点击“前往”后,可以看到规则服务提供的接口。
          输入一个命名空间后,点击确认。





4.编写Program.cs
          在此中输入三个类,RuleSoapFactory、RuleSoapService、Program,其中RuleSoapFactory、RuleSoapService是对规则调用接口的实现。其他程序都可以像Program操作的那样,调用规则包。:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RuleEngine;
namespace HelloSoap
{
    public class RuleSoapFactory : RuleServiceFactory
    {
        override public RuleService RuleService
        {
            get
            {
                return new RuleSoapService(this);
            }
        }
        public RuleSoapFactory()
            : base()
        {
        }
        public virtual void close()
        {
        }
        public virtual void forceClose()
        {
            this.close();
        }
        public virtual void open()
        {
        }
    }
    public class RuleSoapService : AbstractRuleService
    {
        private RuleSoapFactory Factory
        {
            get
            {
                return (RuleSoapFactory)factory;
            }
        }
        public RuleSoapService(RuleSoapFactory factory)
            : base(factory)
        {
        }
        protected override System.String send(System.String xml)
        {
            try
            {
                HelloSoap.ServiceReference1.RuleSoapClient soap = new HelloSoap.ServiceReference1.RuleSoapClient();
                return soap.getRule(xml);
            }
            catch (System.Exception e)
            {
                Factory.forceClose();
                throw new RuleServiceException(e);
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            RuleSoapFactory factory = new RuleSoapFactory();
            RuleService service = factory.RuleService;
            service.put("name", "测试Soap访问");
            service.execute("hello");
            Console.WriteLine(service.getString("welcome"));
            Console.Read();
        }
    }
}

5.执行测试类
          点击执行后,看到执行结果如下,说明已经调用规则包成功:




          以上实例讲述了如何使用VisualRules,此例子主要是讲述了VisualRules是如何和其他系统接口的。关于如何采用VisualRules进行更深入的功能开发,可以参考其他的教程说明,详细了讲述了如何开发一个对数据库操作的管理系统。可以通过查看《旗正商业规则定制平台基础教程》了解如何通过VisualRules开发基于数据库的管理系统。了解使用VisualRules开发基于数据库管理系统的快捷。
  • 大小: 44.2 KB
  • 大小: 21.2 KB
  • 大小: 62.3 KB
  • 大小: 107.5 KB
  • 大小: 26.2 KB
  • 大小: 21 KB
  • 大小: 88.3 KB
  • 大小: 128.8 KB
  • 大小: 73.3 KB
  • 大小: 29.1 KB
  • 大小: 103.7 KB
  • 大小: 75.3 KB
  • 大小: 29.1 KB
  • 大小: 18.7 KB
  • 大小: 46.5 KB
  • 大小: 93.9 KB
分享到:
评论

相关推荐

    Visual-Rules规则引擎产品介绍-PPT课件.ppt

    《Visual Rules规则引擎产品详解》 Visual Rules是一款由旗正信息公司自主研发的规则引擎产品,拥有完全独立的知识产权,专为中国市场打造。该产品旨在帮助企业高效管理业务规则,实现业务规则的快速更新和优化,...

    关于天宝R8-RTK及VRS测量简明教程.docx

    VRS技术是天宝公司开发的一种网络RTK作业模式,通过在一定区域内设立多个基准站,接收卫星信号并将信息传送到数据处理中心。当移动站需要定位时,会先将自己的位置信息发送到中心,中心根据移动站的位置虚拟出一个...

    DH-VRS16录音系统说明书

    DH-VRS16录音系统说明书 DH-VRS16录音系统是一款功能强大且灵活的电话录音解决方案,旨在提供高效、可靠的录音管理体验。该系统通过安装配套的录音系统软件在PC机上,用户可以轻松实现录音回放、录音查询、录音监控...

    Python库 | quartet_vrs-1.1.8-py2.py3-none-any.whl

    标题中的"quartet_vrs-1.1.8-py2.py3-none-any.whl"是一个Python软件包,属于Python开发的后端库。它采用wheel格式,这是Python社区推荐的一种二进制分发方式,旨在简化安装过程,提高效率。让我们深入探讨一下这个...

    VRS--GPS网络RTK技术

    ### VRS--GPS网络RTK技术详解 #### 一、RTK技术及其局限性 **RTK技术**(Real-Time Kinematic,实时运动)是一种基于GPS的实时载波相位差分技术,能够实现在几秒钟内获得高精度的位置信息。这种技术结合了GPS与...

    VRS edit 2.24版本

    VRS Edit 2.24版本是一款专为SEF机器人程序编写监控设计的软件工具。该软件的核心功能在于提供一个高效、便捷的环境,帮助程序员和自动化工程师更好地管理和优化他们的机器人程序。VRS Edit这个名字可能是“Virtual ...

    MTX 15VRS SPS-Interface

    MTX 15VRS SPS-Interface 是一款由 Bosch Rexroth AG 开发的工业自动化设备接口,主要用于连接和通信MTX系列的PLC(可编程逻辑控制器)与SPS(Simulation and Programming Station,模拟和编程站)。该接口设计用于...

    ue4-vrs-prototype:用于衡量虚拟现实疾病的原型项目

    虚拟现实疾病测试室使用虚幻引擎4制作目录包含在这个项目中某种许可证怎么样? 它是什么? 该项目用于测试在使用HMD以及向虚拟环境添加化身时虚拟现实疾病的影响的差异。 专门设计了五个不同的测试室,以在用户中...

    surveycontroller之CORS-VRS接入操作说明.doc 合众思壮RTK 660 650

    文档标题和描述提到了"surveycontroller之CORS-VRS接入操作说明",这涉及到GPS接收机,特别是合众思壮的RTK 660和650型号,以及Survey Controller软件的使用。CORS(Continuously Operating Reference Stations)是...

    VRS及其在矿山测量应用中关键技术分析

    标题:VRS及其在矿山测量应用中关键技术分析 VRS(虚拟参考站)技术是GPS(全球定位系统)网络RTK(实时动态定位)技术的一种,具有传统测量技术和传统RTK技术无可比拟的优点。随着技术的日益成熟,VRS在矿山测量中...

    基于VRS51L3074的LED显示屏控制系统

    VRS51L3074作为市场上首款内置铁电存储器(FRAM)的8051单片机,不仅具备了出色的处理能力,而且还支持多种高级功能,比如SPI模块的CS3扩展功能,这些特性使其成为开发LED显示屏控制系统的理想选择。 #### 2. VRS51...

    RTK-GPS系统设计及VRS差分方式分析比较.pdf

    RTK-GPS系统设计及VRS差分方式分析比较.pdf

    PyPI 官网下载 | quartet_vrs-1.1.8-py2.py3-none-any.whl

    资源来自pypi官网。 资源全名:quartet_vrs-1.1.8-py2.py3-none-any.whl

    基于VRS技术的GPS-PDA在森林资源调查监测中的应用.pdf

    【标题】:“基于VRS技术的GPS-PDA在森林资源调查监测中的应用” 【描述】:本文探讨了如何利用VRS技术与GPS-PDA设备在森林资源调查监测中提高工作效率和精度。 【标签】:GPS定位系统,系统开发,参考文献,专业...

    基于VRS技术的RTK-GPS接收系统设计.pdf

    【基于VRS技术的RTK-GPS接收系统设计】 在全球卫星定位系统(GPS)的应用中,实时动态定位(RTK)技术已经广泛用于需要高精度定位的领域,如精细农业。然而,传统的RTK方法受限于参考站的分布,使得在大范围作业时...

    VersaKit-30xx用户手册1.1

    本手册针对的是 **VersaKit-30xx** 开发系统,它是一款用于评估与编程 **Ramtron** 高性能、完全集成、带有 FRAM 增强功能的 **8051** 基础上构建的 **VRS51L3xxx** 系列微控制器的工具。此开发套件提供了一个即插即...

    电信设备-基于区域网格划分机制的VRS信息接收终端及其工作方法.zip

    【标题】:“电信设备-基于区域网格划分机制的VRS信息接收终端及其工作方法”主要涉及的是电信领域中的一种先进的信息处理技术,该技术利用区域网格划分机制来优化虚拟参考站(Virtual Reference Station, VRS)的...

    GPS—RTK测量技术和网络RTK(VRS)技术应用的几种方式.pdf

    GPS-RTK测量技术和网络RTK(VRS)技术是现代精准定位领域的核心工具,尤其在水利、测绘、工程等领域有着广泛的应用。这两种技术都基于全球定位系统(GPS)的载波相位观测值,实现了厘米级的实时定位精度。 GPS-RTK...

Global site tag (gtag.js) - Google Analytics