0

我正在尝试创建一个可以与 SOAP 一起使用的 Web 服务。我正在使用返回任何值的普通 Web 服务进行锻炼,但我知道我想检查 SOAP:BODY 中的哪些元素是需要的,并通过响应返回它们。我找到了方法

获取肥皂请求()

AddSoapResponse()

在adobe的livedoc中,但不知道如何使用它们。我在w3school.com上看到了请求和响应的解释

我试图用标签“cfsavecontent”解决问题

<cffunction
        name="soap"
        access="remote"
        returntype="any"
        output="false">

        <cfsavecontent variable="soapMessage">
            <?xml version="1.0">
            <soap:Envelope
                xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
                soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

                <soap:Header>

                </soap:Header>

                <soap:Body>
                     <m:GetPriveResponse xmlns:m="namespace">
                         <m:Price>1.90</m:Price>
                    </m:GetPriceResponse>
                </soap:Body>        
             </soap:Envelope>
         </cfsavecontent>

但它仅在 cffunction 具有 returntype="any" 时才有效。“xml”类型发生错误。

谢谢你

4

2 回答 2

4

在 CF 中创建 Web 服务的最简单方法,请参见

为 Web 服务创建组件http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec13a13-7fe2.html

发布 Web 服务 http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-78b7.html

于 2012-05-03T16:37:18.500 回答
1

我刚刚安装soapUI eclipse addon并调用了WSDL包含复杂类型参数的。在使用插件测试我的方法后web service,我得到了我一直在搜索的 SOAP-Message。也许它会帮助任何人,我只是在很长时间内寻找这个解决方案。

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"           
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:com="http://components.conner.somebody">
    <soapenv:Header/>
    <soapenv:Body>
          <com:echoAddress soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          <input xsi:type="com:Address">
              <City xsi:type="xsd:string">?</City>
              <Country xsi:type="xsd:string">?</Country>
              <State xsi:type="xsd:string">?</State>
              <Street xsi:type="xsd:string">?</Street>
          </input>
          </com:echoAddress>
    </soapenv:Body>
</soapenv:Envelope>

这是将调用的coldfusion组件的方法

<cffunction
    name="echoAddress"
    returnType="address"
    output="false"
    access="remote">

    <cfargument
        name="input"
        type="address">

    <cfreturn #arguments.input#>
</cffunction>
于 2012-05-07T06:13:12.147 回答