2013-06-18 75 views
2

我必須使用ColdFusion創建一個wsdl webservice,以供「外部」工具使用。ColdFusion:創建一個不包含任何複雜類型的wsdl

我面臨的問題是,這個外部工具不接受使用複雜類型的webservices(wsdl應該只能得到並返回簡單的值作爲字符串或整數,但沒有數組,結構或obect)。

似乎coldfusion會使用wsdl自動添加一些使用複雜類型的paart。

我的問題是:有沒有一種方法來生成的ColdFusion一個WSDL web服務將不包括任何複雜類型的一部分(所以我的「外部」工具可用)

非常感謝

+0

我見過類似的東西,Lotus Notes無法使用任何用ColdFusion編寫的webservice,即使是簡單的Hello World類型。如果你寫一個不帶參數並返回一個字符串的web服務,你可以用你的外部工具調用它嗎? –

+0

nope,我一直在'原型'一個wsdl,它只包含一個簡單地返回布爾值的函數。 它失敗,因爲Coldfusion添加一些函數或使用複雜的數據到我的簡單虛擬測試功能whaterver元素 –

+0

順便說一句是我嘗試了與另一種技術的Web服務書寫,並有工作正常。問題來自於ColdFusion在wsld中添加了特定的「複雜」內容。 我知道使用另一種語言(即Java)作爲包裝是一種解決方案。但這不是一個理想的解決方案。 –

回答

1

您可以使用cfcomponent標記的wsdlfile屬性來使用預定義的WSDL文件,而不是使用由ColdFusion生成的WSDL文件。

Producing WSDL files頁:

對於WSDL的完全控制,高級用戶可以指定CFCOMPONENT wsdlFile屬性使用預定義的WSDL文件。

而且從cfcomponent documentation page

wsdlfile - 可選 - 正確格式的WSDL文件中使用,而不是由ColdFusion的生成WSDL。

+0

是的,我必須這樣做才能讓.NET客戶端使用CF Web服務。您可以先讓CF生成WSDL,然後保存並修改它。此方法唯一的缺點是端點的URL位於WSDL中,因此您需要注意哪種客戶端正在使用它,以及它是否允許通過其他路徑指定URL,或者是否始終在WSDL中讀取端點(與CF一樣),在這種情況下,您必須編輯每個部署的WSDL – barnyr

相關問題