2010-10-26 35 views
0

在Flex 3中,內省Web服務導致構造函數允許在運行時更改Web服務的位置。看來,Web Service內省工具現在只允許在WS嚮導中指定的單個WSDL URI。這是這種情況還是我只是想念一些東西?Flash Builder 4動態wsdl位置的Web服務自省

Flex 3的內省服務將創建與下面的構造函數簽名服務類:

private var service:MyWebService; 
service= new MyWebService(null, wsdlLocation); // With parameters 

或者你可以使用:

service = new MyWebService(); //with no parameters 

在Flex 4,看來你只能使用:

service = new MyWebService(); 

所以,如果你不知道網絡服務器的位置,直到運行時,我會去nee d手動覆蓋內部檢查/生成的_super_MyWebService.as類,以恢復在運行時指向不同服務器的能力?

任何人都知道爲什麼會發生變化,或者Flash Builder 4 Web服務自檢工具用於動態服務器的「新」方式?

回答

0

我在Adobe論壇上找到了這個問題的解決方案。

解決的辦法是設置WSDL屬性一旦創建您的服務:

var service:MyWebService = new MyWebService(); 
service.wsdl = "location to the wsdl"; 

應當注意的是,使用Flash Builder 4中的Web服務自省工具將自動填充在超WSDL位置。根據Adobe論壇上的帖子,有必要刪除超類中的wsdl位置,否則該值不會被重置。

+0

這顯然只能在服務被聲明爲變量時才能完成。如果它在標記中聲明並且設置了動態WSDL,那麼您將在WSDL文件中找不到「請求的服務」。「 – Laramie 2011-05-26 03:24:22