国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

通過PL/SQL訪問Web Services

2024-07-21 02:32:33
字體:
來源:轉載
供稿:網友
    在Web Services紅得發紫的今天,到處都在談論和使用Web Services;當然,其中有不小一部分是屬于業界炒作。 Oracle也始終走在技術的最前沿,早在9i時代就發布了擴展包來支持PL/SQL訪問Web Services,并且在Oracle 10g版本中使得該功能變得更加強大;這都源于引入了UTL_DBWS包,其實它是封裝了JPublisher,使得PL/SQL開發者只需要使用簡單的幾個API就能調用Web Services了。    下面我將通過一個實例向你展示如何通過PL/SQL調用Web Services,本文的重點是PL/SQL調用Web Services實現上,對于如何發布Web Services,你可以參考本人的另一篇基礎性文章《用OC4J和Axis構建Web Services》或者其他參考資料。    首先,我們來搭建運行環境吧,你得從Oracle OTN下載并安裝Oracle Database(企業版、標準版、個人版均可,但切勿安裝快捷版,因為它沒有提供sqlj組件及相關命令)。假如你已安裝好該數據庫,可跳過該步驟。    然后,需要下載對應版本的UTL_DBWS:      PRe 10g: dbws-callout-utility.zip     10g: dbws-callout-utility-10R2.zip    下載完成后,需要解壓該文件到<oracle_install_dir>/sqlj/lib目錄下,我們還需要使用loadjava將這些jar文件加載到SYS schema中,供所有用戶使用該擴展包,命令如下:<oracle_install_dir>/bin/loadjava -u sys/passWord -r -v -f -s -grant public -noverify -genmissing <oracle_install_dir>/sqlj/lib /dbwsclient.jar    其實在Oracle的文檔中是聲稱10g是自帶UTL_DBWS包的,不過我下載最新的Oracle并完全安裝后,也沒有發現UTL_DBWS的半點蹤影,也只好自己拷貝并執行loadjava了。    好了,現在萬事俱備,只剩寫程序測試了,在編碼測試之前,我們假設你已經將《用OC4J和Axis構建Web Services》文章里hellows已經部署好了,并能正常的調用sayHello方法了;當然,你發布其他的Web Services服務也同樣可行的。下面我們就創建一個function來進行測試,測試代碼如下: CREATE OR REPLACE FUNCTION call_sayHello (username  IN  VARCHAR2)
  RETURN VARCHAR2
AS
  l_service  UTL_DBWS.service;
  l_call     UTL_DBWS.call;
  l_result   ANYDATA;   l_wsdl_url        VARCHAR2(1024);
  l_service_name    VARCHAR2(200);
  l_Operation_name  VARCHAR2(200);
  l_input_params    UTL_DBWS.anydata_list;
BEGIN
  l_wsdl_url       := 'http://localhost:8888/hellows/helloService?WSDL';
  l_service_name   := 'helloService';
  l_operation_name := 'sayHello';  l_service := UTL_DBWS.create_service (
    wsdl_document_location => URIFACTORY.getURI(l_wsdl_url),
    service_name           => l_service_name);  l_call := UTL_DBWS.create_call (
    service_handle => l_service,
    port_name      => NULL,
    operation_name => l_operation_name);
  l_input_params(1) := ANYDATA.ConvertVarchar2(username);  l_result := UTL_DBWS.invoke (
    call_handle  => l_call,
    input_params => l_input_params);  UTL_DBWS.release_call (call_handle => l_call);
  UTL_DBWS.release_service (service_handle => l_service);  RETURN ANYDATA.accessVarchar2(l_result);
EXCEPTION
  WHEN OTHERS THEN
    RETURN NULL;
END call_sayHello;       測試結果如下: 通過PL/SQL訪問Web Services

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东莞市| 乐都县| 凤庆县| 奈曼旗| 临潭县| 兴国县| 天柱县| 绥德县| 昭通市| 蒙自县| 宜丰县| 巨鹿县| 铜梁县| 全南县| 黑水县| 抚州市| 广汉市| 苍溪县| 历史| 锦州市| 邻水| 仪陇县| 鄢陵县| 华安县| 南靖县| 峡江县| 临城县| 寻甸| 兴仁县| 东辽县| 墨脱县| 文昌市| 普兰店市| 邻水| 娱乐| 包头市| 岱山县| 梁山县| 内乡县| 桂东县| 武陟县|