Coldfusion - 创建SOAP Web服务

时间:2015-04-09 04:03:04

标签: web-services soap coldfusion

以下是我尝试为以下内容创建网络服务的XML格式:

  <test a1="a1">
     <e1>e1</e1>
     <e2 a2="a2">
        <e3>e3</e3>
        <e3>e3</e3>
     </e2>
  </test>

我的问题是我不知道如何创建符合XML格式的Coldfusion(cfcomponent)SOAP Web服务。

这就是我的想法:

   <cfcomponent style="document" wsversion = 1 >
        <cffunction name="test" returntype="String" access="remote">
            <cfargument type="String" required="no" name="e1"/>
            <cfargument type="xml" required="no" name="e2" />
            <cfreturn "ok">
        </cffunction>
    </cfcomponent>

正如你所看到的,a1,a2和e3被遗漏了,因为我不知道如何在cffunction中定义它们,我不确定将e2作为xml类型是否正确。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

你必须使用

<cfsavecontent variable="textxml">
 <cfoutput>      
   <test a1="a1">
     <e1>e1</e1>
     <e2 a2="a2">
       <e3>e3</e3>
       <e3>e3</e3>
     </e2>
   </test>
  </cfoutput>
 </cfsavecontent>

并将testxml变量作为xml类型参数传递给函数。

<cfinvoke method="test" component="compname" xmltest="#textxml#">

无需发送单独的参数e1 e2 ...可以将testxml变量发送给函数。

<cfcomponent >
    <cffunction name="test" returntype="String" access="remote">
        <cfargument type="xml" required="no" name="xmltest" />
        <cfset newXML = XMLParse(arguments.xmltest)>
        <cfdump var="#newXML#">
        <cfreturn "ok">
    </cffunction>
</cfcomponent>