如何改变coldfusion发送肥皂反应的方式?

时间:2011-07-19 11:29:48

标签: web-services soap coldfusion wsdl

我有一个coldfusion webservice,它接收XML数据并发回确认。

当出现错误时,当前代码将肥皂响应返回给我

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <ns1:updatePendingTicketsResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://v02.intouchdataservice">
         <updatePendingTicketsReturn xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><![CDATA[<fault>
<faultcode>TO BE DEFINED IF NEEDED</faultcode>
<faultstring >Content is not allowed in prolog.</faultstring>
<faultactor>InTouch</faultactor>
</fault>]]></updatePendingTicketsReturn>
      </ns1:updatePendingTicketsResponse>
   </soapenv:Body>
</soapenv:Envelope>

但我想回应的是

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
  <soapenv:Fault>
<faultcode>TO BE DEFINED IF NEEDED</faultcode>
<faultstring >Content is not allowed in prolog.</faultstring>
<faultactor>InTouch</faultactor>
  </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>

有没有办法可以在出现异常时改变coldfusion发回响应的方式?

除此之外,我们是否可以将一种XML模式添加到coldfusion WSDL以验证已发送的XML文档?

谢谢

2 个答案:

答案 0 :(得分:0)

我认为没有,但您可以将整个代码放入try并捕获定义自己的响应代码。

答案 1 :(得分:0)