2012-02-25 108 views
6

我已成功創建網絡服務。測試它並獲取WSDL文件。將使用此Web服務的客戶端是一個簡單的Java類。如何爲Web服務創建Java客戶端?

我能夠創建一個jsp客戶端並調用Web服務的方法。但我需要從Java類調用Web服務。

我該如何綁定此Java客戶端與Web服務?

下面的步驟我也跟着在NetBeans創建Java客戶端...

  1. 我創建了一個簡單的J2SE應用程序。
  2. 使它成爲我製作的WebService的Web服務客戶端。
  3. 我得到了我的WebService的Web服務引用。

但我無法調用WebService的方法。下面是客戶端的文件...

package client_package; 
public class client { 

public static void main(String args[]) 
{ 
    System.out.println("1"); 
    System.out.println(hello("megha")); 
    System.out.println("2"); 
} 
private static String hello(String name) { 


    WS_package.WebService1 service = new WS_package.WebService1(); //package WS_package does not exists 
    WS_package.WebService1 port = service.getWebService1Port(); //package WS_package does not exists 


name = port.hello(name); 

return name; 
} 
} 
+0

這可能有助於(一般):http://stackoverflow.com/questions/209385/java-webservice-client – 2012-02-25 07:15:01

+1

當你運行這段代碼時,你會得到一個異常嗎?如果是這樣,我們可以看到堆棧跟蹤嗎? – 2012-02-25 07:17:43

+0

@MichaelRighi,是的我收到一個WS_package包不存在的錯誤。所以我不能使用它的方法。端口沒有被創建,因此'port.hello(name)'方法沒有被調用 – jQueen 2012-02-25 07:36:25

回答

0

你可以嘗試Jersey及其Client API

+0

我現在可以將簡單的java客戶端綁定到我的web服務。兩者都駐留在單臺機器上。我該怎麼做才能綁定 – jQueen 2012-03-02 11:36:07

2

你可以使用wsimport工具來生成客戶端存根文件,在命令行:

wsimport -keep http://localhost:8080/webservices/helloService?wsdl 

然後導入生成的文件並像上面那樣使用它們

HelloServiceImplService helloService = new HelloServiceImplService(); 
HelloService hello = helloService.getHelloServiceImplPort(); 

也有一些框架角落找尋與WebServices的工作,像Apache CXFApache Axis

更新:只注意到它的一個老問題,如果OP知道答案,他應該更新的話題。