2010-08-16 44 views

回答

1

我建議從Eclipse Java EE中的Web Service Explorer開始。這使您可以調查給定WSDL的任何Web服務。

將WSDL轉換爲Java的指令取決於您要使用的Web服務庫。如果使用Java 6,則會建立Metro棧。

5

您將需要從WSDL文件生成Java代理。您可以使用Apche CXFApache Axis/Axis2來生成Java代理/ Java客戶端。

在Java 6中,您也可以生成Java客戶端。在JDK/bin上有wsimport來生成Web服務客戶端或在Axis中,有WSDL2Java,它執行與wsimport相同的操作。

+0

如何使用wsipmort.exe文件? – sarah 2010-08-16 11:52:00

+0

點擊'wsimport'上的鏈接,並提供解決方案。 – 2010-08-16 12:11:27

12

除了The Elite Gentleman's answer,這裏是我的步驟,我成功地用來生成類是能夠使用Web服務: 命令:

wsimport -Xnocompile -keep -b binding.xml wsdlFile.wsdl 

說明:

  • '-Xnocompile' 禁止顯示.class文件的生成
  • '-keep'確保生成的Java文件不會被刪除(默認情況下,只保留.class文件)
  • '-b'指定綁定配置文件。這是必要的! (見下)

我有問題,Java類包含JAXBElement<Type>包裝類。 因此,而不是類型String的類成員,我會得到類型JAXBElement<String>,這是可怕的使用。隨着-b開關wsimport及以下binding.xml文件,你會得到正確的類型:

<jaxb:bindings version="2.0" 
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <jaxb:bindings> 
     <jaxb:globalBindings generateElementProperty="false" /> 
    </jaxb:bindings> 
</jaxb:bindings> 

我希望這有助於。 wsimport然後生成您需要的所有類以及包含所有Web服務方法的方法的類。

默認情況下,這些方法沒有讀取超時(在請求時會說出網絡問題...),請參閱here,以瞭解當時的問題。

4

我會看看讓你的IDE自動生成一切。

在NetBeans中,步驟是:

右擊你的項目,單擊 「添加Web服務客戶端」,進入WDSL URL,然後單擊Finish。

這將自動爲您創建Java代理。

要在代碼中實現客戶端,請將所需方法(位於項目中的Web服務引用中)拖放到代碼中。

+0

+1我剛要推薦它。在這種情況下,NetBeans使它變得微不足道。 – Rekin 2010-08-18 19:23:17

0

soapUI是允許您輕鬆進入WSDL/SOAP世界的軟件之一。您可以生成帶有測試值的SOAP請求以發送到服務器。您還可以看到服務器的SOAP響應。這將讓你更多地理解WSDL/SOAP。要從wsdl生成java代碼,請參閱上面的建議。

2

使用wsimport -keep這將給你所有的類。然後編寫一個不同的服務類並複製生成的服務類中的所有方法。將你自己的服務類傳遞給wsgen -keep -p。它會給你需要的包裝類(jax-ws),你將從你的委託調用方法返回。

0

使用IDE時,這很簡單。讓我們以netbeans爲例。

  1. 來打開NetBeans
  2. 通過點擊文件中創建一個新的項目,並選擇新的項目
  3. 下選擇應用類別下和Java的應用程序的一個java
  4. 右鍵點擊你新建的項目,並選擇新的選擇web 服務客戶端。
  5. NetBeans將要求一個WSDL和客戶端位置

    [WSDL和客戶端的位置] [1]

    [1]: https://i.stack.imgur.com/yWQZv.png 
    
  6. 選擇WSDL和輸入網址的WSDL位置的

  7. 點擊完成,將爲您創建所有方法

您在這裏的任務是調用方法並傳遞參數