WebServices in Oracle 11g
前言:本文件介紹ORACLE透過UTL_DBWS去呼叫Web Serices的服務,關於web service網上有一篇文件寫的不錯,http://www.ruanyifeng.com/blog/2009/08/what_is_web_service.html,一次業務的需要也要用來這個服務,以下是整個配置的過程。
附:或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 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: (10.1.2)
- 10g: (10.1.3.0)
- 10g, 11g & 12c latest: (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(' 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管理 )
........................................................................................................................................................................
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12679300/viewspace-1436038/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SOAP及WebServicesWeb
- c#呼叫webservicesC#Web
- Cxf - Spring整合呼叫WebServicesSpringWeb
- Cxf - Spring整合Cxf暴露WebServicesSpringWeb
- 網上常用免費WebServices集合Web
- Java呼叫取得天氣預報WebServicesJavaWeb
- oracle 11gOracle
- restfus webservices獲取資料的api方法RESTWebAPI
- oracle 11g acfsOracle
- oracle 11g dataguardOracle
- JAVA -get-post-soap方式反問外部webservicesJavaWeb
- cxf ServerFactoryBean 生成基於soap1.2的WebServicesServerBeanWeb
- Oracle之11g DataGuardOracle
- Oracle 11G EM建立Oracle
- Oracle 11G Virtual ColumnsOracle
- Oracle 11G Duplicate DatabaseOracleDatabase
- oracle 11G dataguard配置Oracle
- oracle 11g 磁碟操作Oracle
- oracle 11g em recreateOracle
- ORACLE DG 11G 搭建Oracle
- oracle 11g 柱狀Oracle
- oracle 11g 角色口令Oracle
- oracle 11g dataguard 建立Oracle
- ORACLE 11G OCM PASSOracle
- Oracle 11g tablespace usageOracle
- Oracle 11g Active DataguardOracle
- Oracle 11g 新特性Oracle
- Oracle 11g Data GuardOracle
- FLASH CACHE IN ORACLE 11GOracle
- Oracle 11g釋出Oracle
- oracle 11g 建立 jobOracle
- There are five editions in oracle 11gOracle
- Oracle 11g Default SchemasOracle
- Oracle 11g Health MonitorOracle
- oracle 11g中的 oracle restart特性OracleREST
- [Oracle] oracle 11g dataguard (one instance)Oracle
- 請教什麼是WebServices,在Java如何實現WebJava
- Oracle Linux中安裝Oracle 11gOracleLinux