我正在尝试创建一个可以使用SOAP的Web服务。我正在使用返回任何值的普通web服务进行练习,但我知道我想检查SOAP:BODY中需要哪些元素并返回响应。我找到了方法
GetSoapRequest()
和
AddSoapResponse()
来自adobe的liveoc,但不明白如何使用它们。 我在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 for helf
答案 0 :(得分:4)
在CF中创建Web服务的最简单方法,请参阅
为Web服务创建组件http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec13a13-7fe2.html
发布网络服务 http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-78b7.html
答案 1 :(得分:1)
我刚刚安装了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>