Java和.Net调用规则

在实际的开发过程中,往往对规则引擎的使用方式是:通过规则引擎配置规则,然后使用不同的开发语言来调用规则,下面我说一说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();
        }
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值