Is it possible for a ColdFusion web service method to return an object?
- January 5, 2010
- 1 reply
- 586 views
I am experimenting to see if it is possible for a ColdFusion web service method to somehow return another object of some sort. I am not having any luck with either my code or searching Google, but I wanted to ask before I gave this up as impossible.
My last experiment looked something like this:
webservice-test.cfm
<cfset testObj = createObject("component","webservice")>
<cfoutput>#testObj.getID()#</cfoutput><hr />
<cfoutput>#testObj.getObj().myFunction("george")#</cfoutput><hr />
<cfdump var="#testObj.getObj()#"><hr />
<cfdump var="#testObj#"><cfset testWS = createObject("webservice","http://localhost/webservice.cfc?wsdl")>
<cfoutput>#testWS.getID()#</cfoutput><hr />
<cfdump var="#testWS.getObj()#"><hr />
<cfdump var="#testWS#">
webservice.cfc
<cfcomponent>
<cfproperty name="ID" default="10" type="numeric">
<cfproperty name="obj" type="webservice2">
<cfset variables.ID = "12">
<cfset variables.obj = createObject("component","webservice2")>
<cffunction name="getID" access="remote" returntype="numeric">
<cfreturn variables.ID>
</cffunction>
<cffunction name="getObj" access="remote" returntype="webservice2">
<cfreturn variables.obj>
</cffunction>
</cfcomponent>
webservice2.cfc
<cfcomponent>
<cffunction name="myFunction" access="remote" returntype="string">
<cfargument name="myArgument" type="string" required="yes">
<cfset myResult=arguments.myArgument>
<cfreturn myResult>
</cffunction>
</cfcomponent>
This produces the include results.
As can be seen the top portion of the code that access the nested components locally works exactly as expected.
The lower portion of the first file that accesses the nested components as a web service produce an empty string for the method that is supposed to reference the second cfc file. Is that what happens if one tries to nest objects in a web service, or am I doing something wrong.
