0

SOAPで利用できるWebサービスを作成しようとしています。値を返す通常のWebサービスを使用して演習を行っていましたが、SOAP:BODYのどの要素が必要かを確認し、それらを応答とともに返したいことを知っています。私は方法を見つけました

GetSoapRequest()

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」でエラーが発生します。

棚のthx

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

をインストールして、complexeタイプの引数を含むsoapUI eclipse addonを呼び出しました。WSDLアドオンを使用してメソッドをテストした後web service、常に検索していたSOAPメッセージを取得しました。多分それは誰にでも役立つでしょう、私はちょうどこの解決策を長い間探しているところです。

<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 に答える