通过webservice调用ODI方案的实现方式
项目上需要发布ODI的webservice,供给siebel调用,使得siebel可手动触发ODI方案运行,达到实时传递数据的目的。 ? 为实现该功能,做了以下尝试: ? 1)Tomcat5.x+Apache Axis2_1.2+odi-public-ws.aar发布webservice ? ??? 前提:需要安装Tomcat5.x版本,JDK5.x版本,6.x以上版本会出现报错 ??????????? Axis2需要1.2版本 ??? ?? Axis2部署到Tomcat后,登录Axis2应用http://xxx.xx.xx.xxx:7011/axis2,将odi-public-ws.aar上传,成功后可在Axis2的services里看到OdiInvoke的服务 ?? 外界可通过http://xxx.xx.xx.xxx:7011/OdiInvoke?wsdl中的invokeScenario方法触发方案运行,详细步骤不在此表述。 ? ?? 结论:wsdl正确发布,且所需参数都正确提供后,该方案可达到目的,可实现所需功能。 ? ?????????? 因客户方偏好问题,不赞成使用Tomcat作为发布容器,因此产生第二种尝试 ? 2)WebLogic+Apache Axis2_1.2.war+odi-public-ws.aar发布webservice ? ?????前提:安装weblogic11g, Axis2需要1.2版本 ???? Axis2的版本务必是1.2的,否则部署到weblogic时不成功。 ???? Axis2安装成功后,登录http://xxx.xx.xx.xxx:7011/axis2,通过上传按钮,将odi-public-ws.aar上传到服务器,然后到AXIS2的services查看,发现没有OdiInvoke服务。 ???? 网上查找资料,找到解决方法如下: ?????在将Axis2.war文件上传之前,做如下操作 ???? 1> 将odi-public-ws.aar添加到axis2.warWEB-INF/services/目录下,同时,修改该目录下的services.list文件,文件内容如下: ????????? version.aar ???????????odi-public-ws.aar ???? 2>将axis2.war发布到weblogic,发布成功后,可看到OdiInvoke服务,说明部署成功 ???? 点击OdiInvoke服务进入页面,页面前面部分的xml内容显示正常,但在后面却报错: ? The XML page cannot be displayed Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button,or try again later.
The operation completed successfully. Error processing resource 'http://172.19.1.32:7101/axis2/services/OdiInvoke?wsdl'. L... </xs:schema></wsdl:types><wsdl:message name="listContextMessage"><wsdl:part name="part1" element="ns17:... ? 多方查找资料,未果。怀疑是weblogic的xml解析器问题造成的,本打算把weblogic的解析器替换掉,但担心引起其他潜在问题,此方案被否决,因此做第三个方案尝试。 ? ?? 3)odi-sdk-invocation.jar+java Class+webservice+weblogic ? ????? 上述尝试失败后,决定将odi-public-ws.aar解压,将方案调用的Java Api:odi-sdk-invocation.jar取出来在java直接进行调用,java里面的调用测试代码如下: ? ??? public static void main(String[] args){ ??????? ODIConnection.setOdiUser("ADMIN");
??????? if (ODIresult.isOk()) 后面可考虑将该代码发布成webservice的形式,如此即可结合weblogic一起使用。 ?使用JDeveloper发布webservice的过程,后期有时间会做详细的测试 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |