2010-08-25 266 views
3

使用Java/JSP調用vb.net Web服務的最佳解決方案(如果有)是什麼?如果有人能指出我的任何例子/參考資料,我將非常感激。使用Java調用VB.NET Web服務

謝謝!

+1

第一步:獲取WSDL。 – 2010-08-25 19:51:33

回答

2

對於Java連接到.NET Web服務,它將要求您首先生成一個WSDL。這可以通過在.asmx web服務(.NET)前面添加?WSDL來完成,例如。 http://localhost:8080/myApp/myService.asmx?WSDL

對於Java來理解這一點,您將需要一個Web服務客戶端:在Java 6中,JAX-WS是最新的規範。

下面的客戶端符合JAX-WS是:

這些工具允許您創建從WSDL定義Java代理。在java 6中(在JDK_HOME/bin文件夾中)有一些工具(現在是標準的)將WSDL定義轉換爲java代理。 wsimport(窗口)允許這樣的操作。

一旦你有一個java代理,你基本上可以調用所有創建的Web服務方法來調用你的web服務。

1

這完全取決於你在談論什麼樣的Web服務(RESTful vs. SOAP等)。從理論上講,擁有Web服務的重點就是提供這種互操作性,所以它絕對有可能。然而,沒有更多的細節很難指出你在正確的方向。

真的,這個問題與VB.net無關,因爲客戶端不應該暴露於任何服務實現細節。

編輯:由於它是一個SOAP服務,您應該能夠基於服務的WSDL創建一個客戶端。有很多工具可以幫助解決這個問題。以下是使用WSDL2Java實用程序的generating Java code from a WSDL教程。

Java框架你應該看一看:

+0

對不起,沒有指定,我正在談論SOAP ... – littleK 2010-08-25 19:45:45

+0

您將要使用WSDL文件來生成客戶端。查看更新的答案。 – dbyrne 2010-08-25 19:52:10

0

如果 「VB.NET網絡服務」,你的意思是ASP.NET Web服務(。 asmx文件擴展名),您應該能夠通過使用Soap客戶端的Java來使用它。

每個ASP.NET Web服務都將通過WSDL(Web服務定義語言)文件公開它的公共約定,您只需在Web服務地址的.asmx之後添加?WSDL即可訪問該文件。基於SOAP等通用協議的Web服務背後的關鍵優勢在於,它們允許軟件跨越機器和平臺邊界進行通信。 WSDL文件是軟件應用程序之間存在的合同,以確保它們使用相同的語言進行通信。

一個好的客戶端庫將讀取該WSDL文件,並將處理通過基於SOAP的XML消息與Web服務進行通信的管道。如果你真的想,你甚至可以手工製作你的SOAP XML消息,並通過一個簡單的HTTP客戶端進行通信。但是,最好使用已存在的庫來處理您的SOAP管道。這可以讓您的應用程序使用Web服務的功能,同時確保您遵守Web服務合同。