2013-04-16 95 views
0

我在eclipse中使用Apache CXF在Java中創建了一個Webservice,現在我必須創建一個WebService客戶端應用程序來使用和調用它。 我一直在尋找辦法,我發現客戶端總是依賴於服務器的Java類。用Java創建一個SOAP Webservice客戶端應用程序

問題是我必須在其他Java環境中開發客戶端類。我的問題是:有沒有辦法開發一個獨立於webservice服務器的客戶端類,只使用WSDL文件?

謝謝:)

+0

不知道如果我理解你想要達到的,但也有實用程序,可用於從wsdl生成Web服務客戶端。 wsimport是標準jdk的一部分(如果我沒有記錯的話,從Java 6開始) – DaveH

+0

您可以使用cxf'wsdl2java'命令或使用jax-ws'wsimport'生成類wpdl – user1516873

+0

我希望您問過NetBeans(右鍵單擊項目,新的,Web服務客戶端,從WSDL完成) 無論如何 - wsimport已經足夠滿足您的問題。 – Lenymm

回答

0

您可以Apache CXFLink WSDL到Java的工具的幫助。 wsdl2java - 接收WSDL文檔並生成完整註釋的Java代碼,從中實現服務。

你也可以藉助eclipse插件。

Eclipse plugin to generate java class

1

您可以發送請求的Web服務API爲XML請求。只有您需要使用適當的標題和正文來構建SOAP投訴請求。通過使用SoapUI,您可以生成XML請求結構,然後在您的應用程序中重用它。

如果您使用的JAX-RS(REST API)的,即使HTTP方法也適用

[更新]

如果你被卡住瞭如何創建客戶端類,那麼你就按照這個

  1. 使用的wsimport

    > http : //hostname :port/wsdl.url on command line to create proxy classes 
    
  2. 創建jar文件生成的代理類

  3. 添加jar文件到類路徑
  4. 使用服務API來構建終點,然後調用服務。
  5. 樣本測試客戶端如下。

    try { 
    
        URL wsdlURL = new URL("http://localhost:8082/cxf/services/yourservice?wsdl"); 
    
        QName SERVICE_NAME = new QName("http://package.name/","PORTNAme"); 
    
        Service service = Service.create(wsdlURL, SERVICE_NAME); 
    
        client = service.getPort(PORTInterface.class); 
    
        client.executeYourMethod() 
    
    } catch (Exception e) { 
    
        // TODO Auto-generated catch block 
    
        e.printStackTrace(); 
    
    } 
    

  1. 網址是WSDL URL
  2. 要創建的QName,需要提供的服務接口的命名空間(包翻領名稱,通常情況下)和端口名稱您可以在綁定部分的WSDL中找到它。
  3. 還需要確定代理類(名稱將類似於端口名稱)

乾杯 Satheesh

+0

謝謝:)爲什麼要創建一個代理類?我已經使用了wsimport:'wsimport -keep -verbose http://127.0.0.1:8080/MCINTWebservice/services/McintWebservicePort?wsdl'並且它生成了一些類.. – Copernic

+0

您從wsimport生成的內容僅僅是代理類和依賴關係訪問您的服務。您需要創建代理(您的服務)的實例以調用您的服務方法/ –

+0

謝謝我明白。我已經創建了jar,但是請不要理解'使用服務API構造終點,然後調用服務.' – Copernic

相關問題