ILOG JRULE版本V7.0.3
开发机版本WINxp sp4
实现目标:
因为原来做的东西都是通过将已编写好的RULES应用以webservice的方式发布到RES上以供其他业务系统调用,在业务变更时通常需要修改RULES的webservices接口,接口相对比较死板,不够灵活。
考虑到RULES应用越来越多,频繁的接口更改势必造成不必要的开发工作量,于是想将接口参数以XML的形式进行传输,所以想用dom4j将入参(入参中一般只有一级节点)中XML各节点转化到变量集中进行存储,以方便在后续规则中使用。
开发过程描述:
我先建立了一个XOM(名为HappigoRulesXom的工程),里面写了一个用来解析XML的类(用DOM4J将XML解析成Map),其类名为:xmlTransf
另外happigoRulesAttribute类是用来做入参定义的(另外那个getStaticCondition的类是做别的用的,没有引入到BOM条目中去,此略过)
建立RULE工程,创建两个条目分别对应到上面XOM中建立的两个类
建立VariableSet变量集,并对应到入参中的各节点(入参中分别有flag,Function_id,staff_id,staff_name,subsys_id),我的本意是通过调用bom条目中的xmlToMap的帮助方法来将入参中XML的各节点值储存到VariableSet中,以供后续之用
建立FxXmlToMap函数(另外那个函数没有用到,此处略过),完成入参至VariableSet的转化
建立主流程并设置Init Action
设置入参,测试,在规则结束的时候System.out.println(staff_id)
输入结果准确无误(即成功println出VariableSet中的staff_id 的值)
至此都无问题。
创建RuleApp并发布到本机RES服务器
从控制台的信息看到发布成功。
登陆RES控制台可以看到应用正常
以下就是我要问的问题了:
我在该页面上点击Get HTDS WSDL for the latest ruleset version时,直接报错,截图如下:
我的其他应用(没有用到帮助方法的其他应用在查看webservices描述时候是可以正常看到详细的描述内容的),就这个看不到,且业务系统调用该规则时也报同样的错误信息。
是我哪里配置出了问题,还是如果规则里使用了帮助方法,就不能采用webservices的方式进行调用了呢,如果我需要这个规则对外提供webservices的服务,我该怎么办?
我觉得应该是XOM里面的CLASS文件及DOM4J.JAR没有打包进RES的缘故,因为我在控制台的show Archive Content中也没发现有CLASS及dom4j.jar的包(如下图),如果是这个原因,那我该怎么样使这些文件也能顺利的发布到RES上去呢?
另外,项目成功发布之后,是存储在RES的哪个目录下了?
收起