2011-03-12 125 views
4

Axis 1.1客戶端與Axis2 Web服務端點通話是否可能?根據我的理解,Web服務通過使用由服務的WSDL指定的模式來回傳遞XML SOAP消息來工作,但我不確定這些版本的Axis是否利用不同版本的Web服務規範來阻止它們從說話。有什麼想法嗎?讓Axis 1.1客戶端與Axis2服務端通話

回答

4

好的,使用Axis 1.1與Axis2 Web服務進行通信可以很好地工作。我使用Axis 1.1生成了存根,創建了一個Client類並進行了測試。 Axis 1.1的API沒有提供我以前的Axis 1.4允許的一些功能,特別是在ParameterDesc類中,您可以在其中指定Web服務方法參數是可修改的還是它們的minOccurs,但我的調用似乎工作得很好。總而言之,它可以用基本的WSDL定義來完成,但是我不確定Axis2是否利用了由於Axis 1.1的老化而導致Axis 1.1無法適應的新功能API ...

哦,還有最後一個註釋,我需要使用SOAP 1.1 stubs來處理我的請求。我不是100%確定爲什麼自從我的回覆以SOAP 1.2的形式回來之後,但您已經擁有它了。

1

一般而言,您的理解是正確的,如果客戶遵守WSDL描述,它應該能夠聯繫Web服務。
但是Axis1和Axis2默認使用不兼容的不同編碼。
Axis1使用RPC(已過時),而Axis2使用doc/lit。
因此,您所要求的即Axis2客戶端與Axis1服務器進行通信的方式將不起作用。
對於反向(以及你在帖子中提出的問題)我並不確定。
您是否嘗試使用WSDL生成存根(stub)?
你有沒有得到任何錯誤?如果你在存根創建中沒有錯誤,我相信你可以試試看。