2014-04-17 33 views
7

我繼承了一些由ColdFusion 9生成的WSDL的Web服務.CF9默認是RPC編碼的,所以就是這樣。但是,最近我注意到.NET框架的更新版本(或者它的更新版本的Visual Studio)不喜歡RPC編碼的WSDL。在測試中(使用C#),我驗證了VS 2013只有在文檔字面樣式中正確使用了該服務。將ColdFusion生成的WSDL Web服務從RPC編碼更改爲文檔文字會產生什麼影響?

我當然願意改變風格以便更普遍地使用,但是這個web服務在野外已經有一段時間了(我確信很多人都會使用它),所以我希望確保我能夠處理可能的影響。我還想知道是否有可能讓ColdFusion生成兩個不同的WSDL(或者允許在運行中設置編碼?)。基本上,我會很感激任何建議,以使其兼容(同時保持向後兼容性)的最佳方式。謝謝。

+0

你讀過它的任何文檔了嗎? http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-78a6.html – fyroc

+1

除非我從那個文檔中忽略了一些東西(我讀過,哦,八次),那是關於如何生成WSDL,這不是我的問題。我的問題是關於改變現有WSDL的風格(及其影響)。 –

+0

我只是簡單地問,並給你一個開始,因爲還沒有答案。並不意味着成爲答案,或者我將它作爲答案發布。對困惑感到抱歉。 – fyroc

回答

0

如果您可以爲文檔 - 文字樣式Web服務創建第二個URL,那麼您可以擴展現有的CFC。您的新CFC將擁有主Web服務的所有功能和邏輯。它也會阻止一個沒有額外的代碼來維護。對我來說唯一的未知是如果這會造成任何重大的額外開銷。

<cfcomponent extends="yourExistingCFC" style="document" output="false"></cfcomponent> 

我曾嘗試將文檔類型設置爲文檔字面上的一個測試Web服務。 SoapUI無法解析一旦更改的文檔 - 文字WSDL,但Visual Studio可以。因此,我會猶豫改變現有CFC的文檔風格,因爲您無法分辨所有客戶端環境如何處理這些更改。

+0

啊,聰明。我會嘗試的。並感謝您的測試 - SoapUI問題正是我對改變類型猶豫不決的原因。 –

+0

我按照你的建議做了,並且它似乎生成一個由Visual Studio正確使用的有效的文檔 - 文字WSDL。不幸的是,它在實際使用時拋出了'org.xml.sax.SAXParseException:文件過早結束錯誤'。我在C#和ColdFusion中測試過,並收到相同的錯誤。但是,如果我將原始組件更改爲文檔 - 文字樣式並將生成的WSDL複製到靜態文件,則更新擴展組件以指向該靜態文件(使用'wsdlfile'屬性)而不是自動生成一個文件作品。任何想法發生了什麼? –

+0

使用靜態WSDL,綁定仍然指向現有的Web服務文件。只要生成的發送到服務器和從服務器發送的soap看起來相同,它並不是來自WSDL。在提出建議之前,我無法完全測試我的建議。我不確定爲什麼對擴展服務的請求會失敗。 – Twillen

相關問題