1. 程式人生 > >ColdFusion 編寫WebService 示例

ColdFusion 編寫WebService 示例

HERE 路徑 ref red lan 程序 sdl 變量 類型

  1.開發 Web Services,編寫cfcdemo.cfc組件,代碼如下:  

<cfcomponent style ="document"
namespace = "http://www.mycompany.com/"
serviceportname = "RestrictedEmpInfo"
porttypename = "RestrictedEmpInfo"
bindingname = "myns:RestrictedEmpInfo"
displayname = "RestrictedEmpInfo"
hint = "RestrictedEmpInfo">


  <cffunction name = "getEname" access = "remote" returntype="xml" output="no" >
    <cfargument name = "dname" type = "string" required = "false">
    <cfargument name = "loc" type = "string" required = "false">
    <cfquery
name = "dt" datasource = "scott">

      select * from dept where
      <cfif arguments.dname neq "">
        dname = #arguments.dname#
      </cfif>
    </cfquery>
    <
cfxml variable="Books">

      <XML>
        <cfoutput query="rs">
          <book>
            <bname>#deptno#</bname>
            <isbn>#dname#</isbn>
            <writer>#loc#</writer>
          </book>
        </cfoutput>
      </XML>
    </cfxml>
    <cfreturn Books>
  </cffunction>
</cfcomponent>

<!---
ColdFusion開發 Web Services,只需要在ColdFusion組件(.cfc文件)中,
把需要作為 Web Services 的method的access類型定義為remote就可以了(access="remote")。
--->

2.測試一下,訪問這個cfc組件,註意URL路徑後邊要加上 ?wsdl 。

eg:http://localhost/mysys/cfcdemo.cfc?wsdl 

顯示效果如下:   

技術分享圖片

   3.開發測試頁面,編寫webservice.cfm程序調用①開發的 Web service ,代碼如下:

   <cfset sWebServiceUrl = "http://localhost/cfcdemo.cfc?wsdl">
    <cfinvoke webservice="#sWebServiceUrl#"

      component = "cfcdemo"

      method = "getdept"

      returnVariable = "dept">
      <cfinvokeargument name = "dname" value="10"/>   

      <!--- 訪問參數,與參數值,對應.cfc中的 cfargument --->
      <cfinvokeargument name = "loc" value=""/>
    </cfinvoke>
   <cfdump var="#dept#">

4.說明:調用 Web Service 時,webservice.cfm部分和cfcdemo.cfc?wsdl對應如下:

  <cffunction></cffunction>

  <!--- cfc組件中的方法,在cfcomponent中可以有多個 --->

  method -- 對應cfc組件中的方法,<cffunction>標簽內name屬性的值
  timeout -- 設置請求超時秒數
  returnVariable -- 自定義的變量,裏邊存放的是 Web Service 返回的值


<!---傳遞參數--->
<cfinvokeargument name="empno" value="7788"/> --

<!---接收參數--->

<cfargument name="empno" type="string" required="true">

<cfoutput>#dept#</cfoutput> -- 輸出 Web Service

<!--- 註意返回類型一定要與 returntype 對應--->

本文日期2018-11-08

文章參考博客anfslove

ColdFusion 編寫WebService 示例