`
NIIT_zhu
  • 浏览: 49480 次
  • 性别: 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  
没看懂,不明白

相关推荐

    JAVA与.NET的相互调用通过Web服务实现相互调用.doc

    【Java与.NET的相互调用】 在当前的IT行业中,Java和.NET是两种主流的开发平台,它们各自拥有强大的生态系统和丰富的库支持。在某些复杂的项目中,开发者可能需要结合这两种技术,实现跨平台的交互。本文将详细介绍...

    通过WebService实现java与.net互联.pdf

    SOAP消息包括封装结构、编码规则和RPC表示。 - **WSDL(Web Service描述语言)**:描述Web Service的接口、消息格式和操作的XML文档,让客户端能够理解和调用服务。 - **UDDI**:一种标准,使得服务提供者能够...

    asp.net调用扫描仪扫描数据并上传代码

    ASP.NET调用扫描仪扫描数据并上传是一种常见的企业级应用需求,主要用于自动化处理文档和图像。这个场景下,开发者通常会使用特定的扫描仪控件或者API来集成扫描功能到Web应用程序中。以下是对该主题的详细解释: 1...

    几种.net调用memcached的开源类库

    在.NET(Enyim.Caching)和Java(例如spymemcached)之间,只要遵循相同的协议规则,就可以共享同一Memcached集群中的数据。 为了实现.NET和Java之间的互通,你需要确保以下几点: 1. **相同的数据结构和序列化**...

    通过WebService实现Java与.Net互联.doc

    SOAP消息包括封装结构、编码规则和RPC(远程过程调用)表示三部分,确保数据的传输与协议无关。 - WSDL(Web Service描述语言):WSDL用于定义Web Service的接口,描述服务如何被调用、使用哪种消息格式以及在哪里...

    java使用jawin调用dll文件

    7. **内存管理**:由于Java和C/C++对内存管理的方式不同,调用DLL时需要注意内存的分配和释放。JAWIN库会处理大部分内存管理问题,但在处理指针和复杂数据结构时,需要特别注意。 8. **线程安全**:如果DLL函数不是...

    代码查看工具(C,C++,JAVA,.NET代码查看工具)

    标题中的“代码查看工具”指的是专门用于浏览、分析和理解编程语言源代码的软件工具,这里特别提到了针对C、C++、JAVA和.NET平台的支持。这类工具通常具有语法高亮、代码折叠、搜索定位、代码跳转等功能,极大地提高...

    面试题,java,.net,j2ee

    根据给定文件的信息,我们可以从中提炼出与Java、.NET 和 J2EE 相关的知识点,特别是聚焦于.NET框架下的C#语言及其面试题目。接下来,我们将详细解析这些知识点。 ### 1. C#中的引用类型 **知识点:** - **枚举 ...

    .net和Java进行ArcGIS Engine开发培训教程

    《.NET和Java进行ArcGIS Engine开发培训教程》是一份深度探讨地理信息系统(GIS)开发技术的综合资料,主要聚焦于使用两种主流编程语言——.NET和Java与Esri公司的ArcGIS Engine集成开发。这份教程旨在帮助开发者...

    VB.NET/JAVA 采用SOAP 与Webservice发送/接收数据

    - Java中可以通过`java.net.HttpURLConnection`或者第三方库如Apache HttpClient来发送SOAP请求。 - 构建SOAP消息的方式与VB.NET类似,但需要注意字符串转义的不同,例如在Java中XML的双引号需要用`\"`来表示。 -...

    Java 百度ocr文字识别-发票识别,并在页面显示信息

    开发者应妥善管理这些敏感信息,遵循API的使用规则,防止滥用和泄露。 7. **异常处理**:在实际开发中,需要考虑网络错误、接口调用失败、解析错误等各种异常情况,通过Java的异常处理机制确保程序的健壮性。 8. *...

    JAVA调用梦网云通讯平台API实现短信发送

    import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; public class SmsAPIDemo { public static void main(String[] args) throws Exception { String appKey =...

    asp.net及java方向考试题

    ASP.NET和Java是两种广泛应用的Web开发技术,SSH和JSP分别是Java领域的框架和技术。这里主要探讨这些技术的基础知识和相关考试重点。 首先,ASP.NET是微软公司推出的用于构建动态Web应用程序的框架,它基于.NET ...

    C# quartz.net 定时任务源码 可以远程控制

    Quartz.NET是基于Java的Quartz项目的.NET版本,它为.NET开发者提供了一个完全开源的、强大且灵活的作业调度框架。Quartz.NET的核心功能包括: 1. **作业与触发器**:在Quartz.NET中,任务被称为“作业”(Job),而...

    vb6、c#、java的jawin-2.0调用c#做的dll

    标题中的“vb6、c#、java的jawin-2.0调用c#做的dll”涉及到了跨语言调用的技术,主要集中在VB6、C#和Java之间如何通过...在实际开发过程中,需要深入理解各语言的特性和接口调用规则,以确保DLL的高效、稳定和兼容性。

    Java 调用 C# DLL

    此外,注意DLL的命名约定,因为C#的DLL默认使用.NET的命名规则,而在Java中可能需要使用传统的Windows DLL命名规则。 总结来说,Java调用C# DLL的过程涉及到跨语言交互,可以通过JNA或JNI实现。JNA提供了一种便捷的...

    esb简单例子 学习esb的初学者 可以看看

    7. **ESBSimpleSamples.Services.Web**: 这可能是一个包含Web服务(如ASP.NET Web API)的项目,这些服务可以通过HTTP协议被ESB访问和调用。 8. **ESBSimpleSamples.ServiceComponents**: 这可能是服务组件的集合,...

    ASP.Net各种概念和程序编写方法

    构造函数的执行顺序遵循一定的规则:静态字段和静态构造函数先于实例构造函数和方法。base关键字与Java的super类似,用于在子类构造函数中调用父类的构造函数。 委托在ASP.NET中扮演着重要角色,它们是类型安全的...

    C#、java命名规则和开发习惯

    对于Java,虽然没有列出具体的示例,但其命名规则和习惯与C#类似,例如类名首字母大写(PascalCase),变量名首字母小写(camelCase),避免使用`goto`,以及鼓励使用注释、常量类和枚举等。在Java中,`this`关键字...

    csharp.net编程语言

    C#融合了C++和Java的许多优点,提供了更简洁、高效且安全的编程体验。 ##### Microsoft.NET —— 一场新的革命 .NET是Microsoft推出的一个软件框架,旨在提供一种统一的平台,让开发者可以创建和运行各种类型的Web...

Global site tag (gtag.js) - Google Analytics