①开发 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
显示界面如下:
③开发测试页面,编写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