欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

coldfusion (cfml) 开发 WebService 简单示例

程序员文章站 2022-05-06 22:35:54
...

①开发 Web Services,编写cfcdemo.cfc组件,代码如下:
 
<cfcomponent>
         <cffunction name = "getEname" access = "remote" returntype = "string">
                <cfargument name = "empno" type = "string" required = "true">
                <cfquery name = "rs" datasource = "scott">
                      
select ename from emp where empno=#arguments.empno#
                </cfquery>
                <cfset sEname = rs.ename>
                <cfreturn sEname>
         </cffunction>
 </cfcomponent>

 <!---
  ColdFusion开发 Web Services,只需要在ColdFusion组件(.cfc文件)中,
  把需要作为 Web Services 的method的access类型定义为remote就可以了(access="remote")。
 --->

 

②测试一下,访问这个cfc组件,注意URL路径后边要加上 ?wsdl 。
  例如:
http://localhost/mysys/cfcdemo.cfc?wsdl
  显示界面如下:

 
coldfusion (cfml)  开发 WebService 简单示例
            
    
    博客分类: coldfusion coldfusioncoldfusion webservicecfml webservicewebservicecfml 


③开发测试页面,编写webservice.cfm程序调用①开发的 Web service ,代码如下:
 <cfset sWebServiceUrl = "http://localhost/mysys/cfcdemo.cfc?wsdl">

 <cfinvoke webservice="#sWebServiceUrl#" component = "cfcdemo"  method = "getEname" timeout = "3" returnVariable = "sEname">
        <cfinvokeargument name = "empno" value="7788"/>
 </cfinvoke>
 <cfoutput>#sEname#</cfoutput>

 

④说明:
 调用 Web Service 时,各部分和①对应如下:
   webservice -- 其实就是①开发的cfc组件的访问地址加上?wsdl,实际开发中就是别人定义好的 Web Service 地址
      component -- 这个就是对应①cfc组件名称,也可省略不写
           method -- 对应cfc组件中的方法,既是①中<cffunction>标签内name属性的值
           timeout -- 设置请求超时秒数
   returnVariable -- 自定义的变量,里边存放的是①的 Web Service 返回的值
 <!---传递参数--->                                                             <!---接收参数--->
 <cfinvokeargument name="empno" value="7788"/> -- 对应①<cfargument name="empno" type="string" required="true">
 <cfoutput>#sEname#</cfoutput> -- 输出 Web Service 返回结果:SCOTT

  • coldfusion (cfml)  开发 WebService 简单示例
            
    
    博客分类: coldfusion coldfusioncoldfusion webservicecfml webservicewebservicecfml 
  • 大小: 67.5 KB