`
Mr-zhang
  • 浏览: 18434 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

Visual Rules Solution Java集成接口<8>—Java类通过Servlet调用-json格式(调用指定版本)

阅读更多
配置web.xml
设置DBRuleServerServlet的参数xmltype的值为json,如下:
<servlet>
<servlet-name>DBRuleServerServlet</servlet-name>
<servlet-class>com.flagleader.webserver.DBRuleServerServlet</servlet-class>
<init-param>
<param-name>xmltype</param-name>
<param-value>json</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DBRuleServerServlet</servlet-name>
<url-pattern>/servlet/dbruleservices.servlet</url-pattern>
</servlet-mapping>
设置好上述才能调用:
http://localhost:8880/webrule/servlet/dbruleservlet.servlet
查看 Java类通过Servlet调用-xml格式 的2到7小点操作,即(2、配置说明  3、解析web.xml 4、编译文件存放目录 5、登录webrule管理平台 6、webrule管理平台 添加任务和添加服务 7、查看任务和服务)
传输数据格式类型
参数streamtype默认为1,可以不进行配置,可以根据需求配置传输数据格式类型,0表示原始字符串格式。1表示加密压缩字符串。2表示压缩字符串。3表示压缩字节。4表示GZIP压缩流。客户端传输时通过Property.getInstance().setServerSendtype(...)设置传输数据格式类型,默认为1,即Property.getInstance().setServerSendtype(Property.ENCRYZIPSTRINGSEND),其中Property.RAWSEND的值为0,Property.ZIPSTRINGSEND的值为2, Property.ZIPBYTESEND的值为3,Property.GZIPSEND的值为4,其中客户端传输数据格式类型为1时,参数streamtype的参数值可以是0或1,在没有设置参数streamtype的情况下,内部约定为1,如下:
<servlet>
<servlet-name>DbServletServlet</servlet-name>
<init-param>
<param-name>streamtype</param-name>
<param-value>1</param-value>
</init-param> <servlet-class>com.flagleader.webserver.DbServletServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DbServletServlet</servlet-name>
<url-pattern>/servlet/dbruleservlet.servlet</url-pattern>
</servlet-mapping>
新建版本库
访问webrule下的servser的index.jsp,即
http://localhost:8880/webrule/server点击选项卡“规则执行版本”,右键点击左边窗体“规则库版本”,选择“新建版本库”,如下图:






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





查看新建的1.1版本库,如下图:






复制E:\rscfile\1.1目录下的student文件夹到
D:\VisualRules\Tomcat\webapps\webrule\WEB-INF\rsc\1.1目录下,如下图:





添加java测试类
在java工程中添加一个java类,名为Tes7.java,其内容编辑如下:
package com.flagleader;
import java.util.List;
import com.flagleader.engine.Property;
import com.flagleader.engine.RuleService;
import com.flagleader.json.JsonServerServletFactory;
public class Test7 {
public static void main(String[] args) {
try {
//设置加密方式 默认等于 Property.ENCRYZIPSTRINGSEND
Property.getInstance().setServerSendtype(Property.ENCRYZIPSTRINGSEND);
// 工厂模式,该接口可以用在本地调用,以及服务调用
RuleService engine = new JsonServerServletFactory("http://localhost:8880/webrule/servlet/dbruleservlet.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 (Exception e) {
e.printStackTrace();
}
}
}

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






说明已经调用了student.add规则包,并且根据传入的参数,返回处理结果以list<list>形式展示。
同理,任何的其他java类,只需加入上述的代码,即可完成调用规则包的工作。
  • 大小: 135.2 KB
  • 大小: 107.4 KB
  • 大小: 96 KB
  • 大小: 113.6 KB
  • 大小: 159.7 KB
分享到:
评论

相关推荐

    VB封装API的DLL

    VisualBasic6.0编写的DLL&lt;br&gt;&lt;br&gt;封装函数过程一览表----按照分类及字母顺序&lt;br&gt;◆封装的10个过程,没有返回值◆&lt;br&gt;01、AboutAndHelp-----显示帮助信息&lt;br&gt;02、ExitOs-----------注销、重启和关机&lt;br&gt;03、Kill...

    JSP訳文--工具--Java

    &lt;br&gt;UltraEdit 7.2&lt;br&gt;WebGain Studio 4 with VisualCafe&lt;br&gt;Forte for Java开发指南&lt;br&gt;Dreamweaver UltraDev&lt;br&gt;IBM NetObjects ScriptBuilder3.0&lt;br&gt;使用HomeSite加速JSP的开发&lt;br&gt;Java2的安全新特性下的Applet...

    水木清华站∶Java版精华区 含jsp及js等集合.chm

    Java版精华区 &lt;br&gt;含java jsp及js等精华帖子合集&lt;br&gt;适合收藏 查询&lt;br&gt;&lt;br&gt;序号 精华区主题 &lt;br&gt;--------------------------------&lt;br&gt; 1. [目录]Java教程 &lt;br&gt; 1. [目录]Java语言教程 &lt;br&gt; 2. [目录]来自java的传说...

    Visual C++ 编程资源大全(源码 窗体)

    splash.zip&lt;br&gt;通过自己的线程在Splash对话框中显示文字(136KB)&lt;END&gt;&lt;br&gt;6,res_dlg.zip&lt;br&gt;大小可调的对话框(21KB)&lt;END&gt;&lt;br&gt;7,splitter.zip&lt;br&gt;可变的分割视图(58KB)&lt;END&gt;&lt;br&gt;8,anicon1.zip&lt;br&gt;在窗口的标题条上显示...

    C#编程经验技巧宝典

    8&lt;br&gt;&lt;br&gt;0018 有效利用Visual Studio 2005附带程序 8&lt;br&gt;&lt;br&gt;0019 有效使用MSDN帮助 9&lt;br&gt;&lt;br&gt;0020 如何设置MSDN帮助 9&lt;br&gt;&lt;br&gt;1.4 其他 10&lt;br&gt;&lt;br&gt;0021 如何添加项目引用 10&lt;br&gt;&lt;br&gt;0022 如何添加Web...

    DriverStudio 3.2 升级补丁

    DriverStudio 3.2 升级补丁&lt;br&gt;&lt;br&gt;将DriverStudio 3.2升级至DriverStudio 3.2.1&lt;br&gt;&lt;br&gt;原说明如下:&lt;br&gt;&lt;br&gt;Compuware DriverStudio – DriverSuite&lt;br&gt;Version 3.2 ONLY&lt;br&gt;&lt;br&gt;Version 3.2 patch.&lt;br&gt;The ...

    visual studio 2019下C++通过JNI调用JAVA代码

    在本文中,我们将深入探讨如何在Visual Studio 2019环境下使用C++通过Java Native Interface (JNI)来调用Java代码。JNI是Java平台的一部分,它为Java应用程序提供了与本地代码交互的能力,使得开发者可以将Java应用...

    Visual C++ 编程资源大全(源码 图形)

    Graphics.zip&lt;br&gt;VC图形编程的一个简单工程&lt;1450kb&gt;&lt;END&gt;&lt;br&gt;25,DIBShow.zip&lt;br&gt;设备无关位图的一个里例子&lt;1830kb&gt;&lt;END&gt;&lt;br&gt;26,Clock.zip&lt;br&gt;一个数字时钟的图形的工程&lt;1450kb&gt;&lt;END&gt;&lt;br&gt;27,PAINTOBJ.zip&lt;br&gt;一个类似...

    Visual C++ 编程资源大全(源码 控件)

    flat_but.zip&lt;br&gt;浮动按纽上可放置文字和ICON图标(48KB)&lt;END&gt;&lt;br&gt;75,mow_sour.zip&lt;br&gt;弹出PopMenu,但是是按纽选择(17KB)&lt;END&gt;&lt;br&gt;76,Xbutton.zip&lt;br&gt;不规则形状的按纽(8KB)&lt;END&gt;&lt;br&gt;77,roubut.zip&lt;br&gt;圆形的按纽(26...

    Oracle Data Provider for .NET (ODP.NET)

    &lt;br&gt; &lt;br&gt; 下载包括&lt;br&gt; &lt;br&gt; Oracle Developer Tools for Visual Studio .NET 2003 10.2.0.2.20 &lt;br&gt;&lt;br&gt; Oracle Developer Tools for Visual Studio 2005 10.2.0.2.20 &lt;br&gt;&lt;br&gt; Oracle Data Provider for .NET 1....

    Fortify-SCA-扫描工具指导手册.pdf

    G/C++: sourceanalyzer -b &lt;buildid&gt; &lt;compiler&gt; &lt;compiler opts&gt; &lt;files&gt; NET: sourceanalyzer -b &lt;buildin&gt; &lt;exe file&gt; scan〓 sourceanalyzer -b &lt;buildid&gt; -scan -f results. fpr Output opt ions -format &lt;fmt&gt;...

    转换为json数据以及完整的json包

    - JSON编辑器:如Visual Studio Code的JSON插件,帮助编写和格式化JSON结构。 - JSON库对比:了解不同库的优缺点,根据项目需求选择最适合的,如Gson更适合简单场景,而Jackson提供更高级的功能。 总结,将结果集...

    visual Assist x 10.4.1619 +Crack完整版

    &lt;br&gt;&lt;br&gt;Visual Assist X具有强大的编辑特色,提高了生产效率,可以完全集成到您的Microsoft开发环境中,升级了您的IDE,在不改变编程习惯的同时就可以感受到Visual Assist X为您带来的好处。 &lt;br&gt;&lt;br&gt;Visual Assist...

    java调用chrome浏览器内核cef实现,非jxbrowser

    - 这些回调函数将在JNI层实现,然后在Java中通过接口调用。 4. **创建和管理浏览器实例**: - 通过CEF API在Java中创建浏览器实例,指定初始URL和窗口属性。 - 监听并处理浏览器的各种事件,如加载状态改变、...

    Ajax连接WCF

    使用JSON作为数据交换格式可以提高效率,同时,通过设置正确的服务行为和终结点,可以实现异步的、跨域的Web服务调用。在实际应用中,还需要考虑错误处理、安全性以及性能优化等方面的问题。通过这个Demo,你可以...

    C++调用Java接口

    本教程将详细探讨如何使用C++通过JNI(Java Native Interface)来调用Java接口。JNI是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。下面,我们将深入讲解这个过程,并结合实际例子“CInvokJava...

    JNA.jar-JNative.jar-dll创建-JAVA调用-VC调用

    标题中的“JNA.jar-JNative.jar-dll创建-JAVA调用-VC调用”涉及到的是Java平台下通过JNI(Java Native Interface)的两种实现方式,JNA(Java Native Access)和JNative,来与C/C++编写的动态链接库(DLL)进行交互...

    C++调用java jar包测试代码

    标题 "C++调用java jar包测试代码" 描述了一个跨语言交互的场景,其中C++程序通过调用Java编译后的jar包来执行特定功能。这个过程涉及到多个技术点,包括Java的编译和打包,C++的编程以及两者之间的接口调用。 1. *...

    VB API 经典教程合集

    &lt;br&gt;B.VBAPI函数参考手册.chm&lt;br&gt;C.VB经典编程集合.exe&lt;br&gt;&lt;br&gt;D.Vb与Windows API讲座&lt;br&gt;E.VB 程序大揭秘.pdf&lt;br&gt;.................&lt;br&gt;&lt;br&gt;文件为一个独立压缩包,解开后即可使用里面的文件。&lt;br&gt; 需要声明的是,...

    图书馆管理信息系统

    &lt;br&gt;源文件的运行环境&lt;br&gt;操作系统:Windows 2000及其以上版本&lt;br&gt;开发环境:Microsoft Visual Studio 2005及其以上版本&lt;br&gt;数据库:SQL Server 2005及其以上版本&lt;br&gt;Web服务器:IIS 5.1及以上版本&lt;br&gt;来源...

Global site tag (gtag.js) - Google Analytics