WebServices in Oracle 11g
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了WebServices in Oracle 11g,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3797字,纯文字阅读大概需要6分钟。
内容图文
前言:本文档介绍ORACLE通过UTL_DBWS去调用Web Serices的服务,关于web service网上有一篇文档写的不错, http://www.ruanyifeng.com/blog/2009/08/what_is_web_service.html ,一次业务的需要也要用来这个服务,以下是整个配置的过程。
附: http://oracle-base.com/articles/10g/utl_dbws-10g.php或http://blog.csdn.net/cai_xingyun/article/details/40951595(ORACLE 官方的配置步骤),由于配置的过程中发现了一点点的不一样,就因为一点点的不一样,让我连续两天吃不好、睡不好,所以我觉得很有必要把整个明细的步骤写下来:
环境说明:数据库的版本为11.2.0.3(现在10G的版本用的人不多了)
操作系统:windows2003、windows2008和linux64_6.3配置的步骤都是一样的
配置步骤:
一、下载安装包
In a previous article I presented a method for Consuming Web Services using a basic SOAP implementation. This article provides similar functionality, but this time using the UTL_DBWS package, which is essentially a PL/SQL wrapper over JPublisher.
First, download the latest copy of the dbwsclient.jar file:
- Pre 10g: dbws-callout-utility.zip (10.1.2)
- 10g: dbws-callout-utility-10R2.zip (10.1.3.0)
- 10g, 11g & 12c latest: dbws-callout-utility-10131.zip (10.1.3.1) (11g用这个链接)
二、把下载的包放入到目录 /u01/app/oracle/product/OraDb11g_home1/sqlj/lib
三、进行包的导入(步骤写着可以用sys用户导入,但是测试的时候sys用户报错很多,用了system用户后解决)
注:windows需要先安装java,并在oracle用户下运行
11g的导入步骤:
loadjava -u system/password -r -v -f -genmissing dbwsclientws.jar dbwsclientdb11.jar
10g R2的导入脚本
loadjava -u system/password -r -v -f -genmissing dbwsclientws.jar dbwsclientdb102.jar
四、创建pkg:utl_dbws,并授权
SQL> @utl_dbws_decl SQL> @utl_dbws_body SQL> CREATE PUBLIC SYNONYM utl_dbws FOR sys.utl_dbws; SQL> GRANT EXECUTE ON sys.utl_dbws TO test; 授权给用户;
检查运行结果,脚本:select * from dba_objects where object_name=‘UTL_DBWS‘;
经过以上运行,utl_dbws创建完成了,以下是测试步骤:
五、ORACLE提供了相应的测试脚本,但是如果你安装这个测试脚本运行,会一直报如下错误:
经过一番排除之后,发现了一点小问题,经过修改后,请用这个脚本进行测试:
CREATE OR REPLACE Function Add_Numbers(p_Int_1 In Number, p_Int_2 In Number) Return Number As
l_Wsdl_Url Varchar2(32767);
l_Xmltype_In Sys.Xmltype;
l_Service_Qname := Utl_Dbws.To_Qname(l_Namespace, ‘Calculator‘);
l_Service := Utl_Dbws.Create_Service(Wsdl_Document_Location => Urifactory.Geturi(l_Wsdl_Url)
l_Call := Utl_Dbws.Create_Call(Service_Handle => l_Service
l_Xmltype_In := Sys.Xmltype(‘<?xml version="1.0" encoding="utf-8"?>
Utl_Dbws.Release_Call(Call_Handle => l_Call);
l_Return := l_Xmltype_Out.Extract(‘//return/text()‘).Getnumberval(); |
如果下面的语句的执行结果跟我的一样,恭喜你:成功了!
SELECT add_numbers(10, 15) FROM dual; ADD_NUMBERS(10,15) ------------------ 25
总结:年末这个时间点,要静下心来研究一个技术真不是一件容易的事情。本来不是很难的一个问题,弄的焦头烂额。做技术请先把心静下来;
........................................................................................................................................................................
本文作者:JOHN,某上市公司DBA,业余时间专注于数据库的技术管理,从管理的角度去运用技术。
ORACLE技术博客:ORACLE 猎人笔记 数据库技术群:367875324 (请备注ORACLE管理 )
........................................................................................................................................................................
原文:http://blog.itpub.net/12679300/viewspace-1436038/
内容总结
以上是互联网集市为您收集整理的WebServices in Oracle 11g全部内容,希望文章能够帮你解决WebServices in Oracle 11g所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。