OracleWebservice接口开发.doc
《OracleWebservice接口开发.doc》由会员分享,可在线阅读,更多相关《OracleWebservice接口开发.doc(23页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Oracle EBS接口开发之通过 DBWS 包实现WEBSERVICEAuthor:苏南生E-Mail:nansheng.su#hand-Creation Date:December 27, 2014Last Updated:December 27, 2014Document Ref: Version:DRAFT 1AApprovals:Copy Number_Document ControlChange Record3DateAuthorVersionChange Reference2014-12-27snansDraft 1aNo Previous DocumentReviewersNa
2、mePositionDistributionCopy No.NameLocation1Library MasterProject Library 2Project Manager 3 4Note To Holders:If you receive an electronic copy of this document and print it out, please write your name on the equivalent of the cover page, for document control purposes.If you receive a hard copy of th
3、is document, please write your name on the front cover, for document control purposes.ContentsDocument Control.ii1.Webservice.21.1 一个案例.2 1.2 模拟测试.3 1.3 什么是WebService.3 1.4 WebService平台技术.42.DBWS包.62.1 DBWS.6 2.2 下载安装.63.XML .103.1 为什么要说XML.10 3.2 命名空间的引入.10 3.3 命名空间的声明与使用.114.XPath.134.1 Xpath简介.13
4、 4.2 XPath路径表达式.135.Oracle 解析带有命名空间的XML.185.1 XMLTABLE.18 5.2 extract.186.信保通对接代码示例 .197.Open and Closed Issues for this Deliverable.20Open Issues.20 Closed Issues.201. Webservice1.1 一个案例一个案例1)案例功能:通过输入IP地址地址查询国家、城市、所有者等信息。2)返回数据: 一个一维字符串数组String(1),String(0) = IP地址;String(1) = 查询结果或提示信息3)案例地 址:http
5、:/ ce.asmx?op=getCountryCityByIp4)WSDL地 址:http:/ ce.asmx?wsdl请求数据格式:POST /WebServices/IpAddressSearchWebService.asmx HTTP/1.1 Host: Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: “http:/WebX 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: lengthstringstring1.2
6、 模拟测试模拟测试1)软件模拟:通过SOAP协议,发送请求2)软件模拟:接收返回的数据由于软件的编码缺陷,这边第二个标签内容为:”中国 移动”3) 附件:案例软件包wfetch.rar通过以上的软件模拟,我们已经大概知道了Webservice的大概交互方式和作用。1.3 什么是什么是WebService其实可以从多个角度来理解WebService,从表面上看,WebService就是一个应用程序向外界暴露出一个能通过Web进行调用的API,也就是说能用编程的方法通过Web来调用这个应用程序。我们把调用这个WebService的应用程序叫做客户端,而把提供这个WebService的应用程序叫做服
7、务端。从深层次看,WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何在Web上实现互操作性,你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。 WebService平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,WebService平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。Web service平台必须提供一种标准来描述Web service,让客户可以得
8、到足够的信息来调用这个Web service。最后,我们还必须有一种方法来对这个Web service进行远程调用,这种方法实际是一种远程过程调用协议(RPC)。为了达到互操作性,这种RPC协议还必须与平台和编程语言无关。1.4 WebService平台技术平台技术XML+XSD,SOAP和WSDL就是构成WebService平台的三大技术。XML+XSD:WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的返回结果是什么)。XML是WebService平台中表示数据的格式。 XML解决了数据表示的问题
9、,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,64位?这些细节对实现互操作性很重要。XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。WebService平台就是用XSD来作为其数据类型系统的。当你用某种语言(如VB.NET或C#)来构造一个Web service时,为了符合WebService标准,所有你使用的数据类型都必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。SOAP:WebService
10、通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用Web Service。SOAP协议 = HTTP协议 + XML数据格式SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。打个比喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。WSDL:好比
11、我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。 WebService也一样,WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Se
12、rvice及其函数、参数和返回值。它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。2. DBWS包包2.1 DBWSOracle在9i时代就发布了扩展包来支持PL/SQL访问Web Services,并且在Orac
13、le 10g版本中使得该功能变得更加强大;这都源于引入了UTL_DBWS包,其实它是封装了JPublisher,使得PL/SQL开发者只需要使用简单的几个API就能调用Web Services了。2.2 下载安装下载安装1.检查是否已经安装utl_dbws包SQL desc sys.utl_dbws ERROR: ORA-04043: object sys.utl_dbws does not exist2.检查数据库中java classes 的状态-2.检查数据库中java classes 的状态 SELECT owner, status, count(*) FROM DBA_OBJECTS
14、 WHERE OBJECT_TYPE=JAVA CLASS GROUP BY owner, status; OWNER STATUS COUNT(*) - - - APPS VALID 4576 MDSYS VALID 564 SYS VALID 24722 ODM VALID 264 ORDSYS VALID 1876-如果存在INVALID状态的失效类,可以运行$ORACLE_HOME/rdbms/admin/utlrp.sql, 来修复3.下载最新的dbwsclient.jar文件Pre 10g: dbws-callout-utility.zip (10.1.2)10g: dbws-ca
15、llout-utility-10R2.zip (10.1.3.0)10g, 11g System altered. SQL alter system set JAVA_POOL_SIZE=200M scope=both; System altered.7.安装# 安装到 SYS schema. export PATH=$ORACLE_HOME/bin:$PATH cd $ORACLE_HOME/sqlj/lib # 10gR2 loadjava -u sys/password -r -v -f -genmissing -s -grant public dbwsclientws.jar dbws
16、clientdb102.jar # 11g and 12c loadjava -u sys/password -r -v -f -genmissing -s -grant public dbwsclientws.jar dbwsclientdb11.jar# 安装到非 SYS schema. export PATH=$ORACLE_HOME/bin:$PATH cd $ORACLE_HOME/sqlj/lib # 10gR2 loadjava -u scott/tiger -r -v -f -genmissing dbwsclientws.jar dbwsclientdb102.jar # 1
17、1g SQL GRANT EXECUTE ON sys.utl_dbws TO apps;9.测试脚本如果已经安装完成以上步骤,我们可以通过如下实例来检验我们的Oracle是否已经成功安装DBWS包。新建一个FUNCTION,作用是:接收两个数值,然后程序调用Webservice,计算两个number的和。CREATE OR REPLACE FUNCTION add_numbers (p_int_1 IN NUMBER,p_int_2 IN NUMBER)RETURN NUMBER ASl_service UTL_DBWS.service;l_call UTL_DBWS.call;l_wsdl
18、_url VARCHAR2(32767);l_namespace VARCHAR2(32767);l_service_qname UTL_DBWS.qname;l_port_qname UTL_DBWS.qname;l_operation_qname UTL_DBWS.qname;l_xmltype_in SYS.XMLTYPE;l_xmltype_out SYS.XMLTYPE;l_return NUMBER; BEGINl_wsdl_url := http:/oracle- := http:/wwworacl323ces/;-l_service_qname := UTL_DBWS.to_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OracleWebservice 接口 开发
限制150内