我正在測試使用Web服務並且出現錯誤。使用ColdFusion webservice - 使用參數{}的Web服務操作無法找到
這裏是Web服務組件:
<cfcomponent >
<cffunction name="listBooks" access="remote" returntype="string" output="no" >
<cfquery name="getBooks" datasource="cfbookclub" >
SELECT bookID, title, bookDescription, genre
FROM books
ORDER BY title desc
</cfquery>
<cfsavecontent variable="bookList" >
<books>
<cfoutput query="getBooks" >
<book id="#getBooks.bookID#" >
<title>#XMLFormat(getBooks.title)#</title>
<description>#XMLFormat(getBooks.bookDescription)#</description>
<genre>#XMLFormat(getBooks.genre)#</genre>
</book>
</cfoutput>
</books>
</cfsavecontent>
<cfreturn bookList >
</cffunction>
這裏是方頁面:
<cfinvoke
webservice="http://127.0.0.1/books.cfc?wsdl"
method="listBooks"
returnvariable="rawXMLBookList" >
</cfinvoke>
似乎很簡單 - 我其實是想傳遞一個參數「流派「當我得到最初的錯誤時,
Web service parameter name category cannot be found in the provided parameters {genre}.
所以我刪除了所有引用的論點,並仍然得到這個錯誤
Web service operation with parameters {} cannot be found.
該錯誤使得它聽起來像網絡服務不能被發現,但是如果我剪切並粘貼URL到我的瀏覽器我得到的預期的XML文檔...
在這個網站上有這樣的另一篇文章,但問題是一個base64問題,我只是返回txt,所以我不認爲這是一個類似的問題,即使通過錯誤消息很相似。
EXCELLENT ...非常感謝,做了這個伎倆。這些信息非常受歡迎 - 儘管從「優雅失敗」的角度來看,這聽起來像是你幾乎想要捕獲該錯誤,然後以refreshwsdl =「yes」的設置重試,但它的默認值爲refreshwsdl =「no 「......而不是在有人打電話來說他們有錯誤時將其重新編碼爲單次運行。 – jpmyob 2013-05-03 15:56:27
這應該只在Web服務本身發生更改(很少在生產中)時才需要。例如,當您添加或刪除Web服務的參數或者如果您更改參數的類型。如果更改Web服務的返回類型。所有這些都是在開發過程中發生的,但是一旦Web服務正式投入使用,應該很少見。該函數中的代碼可以更改,而無需刷新WSDL。這有幫助嗎? – 2013-05-03 16:05:42