2010-05-04 125 views
1

我有一個使用wsHttpBinding的WCF Web服務,我正在使用Java客戶端。我使用wsimport從WSDL生成代碼。 java客戶端似乎創建的服務很好,但是當我調用服務的方法時,客戶端只是旋轉。如何使用Java客戶端導入WCF Web服務

MyService s = new MyService(); 
IMyService i = s.getWSHttpBindingIMyService(); 
returnedValue = i.getSomething(2); // method call 

java客戶端可以與使用wsHttpBinding的WCF webservice進行通信嗎?那麼這樣做的最好方法是什麼?
任何幫助將不勝感激。

回答

5

你一定會希望使用WSIT協助您撰寫客戶端,它可能是最容易使用的整個Metro堆棧。 Metro包含jaxws-ri,WSIT & JAB位於其罐子中(webservices-rt.jar & webservices-api.jar)。

有幾個步驟,讓你開始:

  1. 是否WCF服務發佈的WSDL包含的WS-Policy部分?如果沒有,請將該信息&放入您的本地本地服務WSDL文件副本中。在包含WS-Policy部分的WSDL上重新運行wsimport。

  2. 在客戶端的classpath中包含地鐵罐。

  3. 編寫一個名爲wsit-client.xml文件的文件&將它放入WEB-INF/classes(或類路徑中)。這是一個sample。現在,當您使用客戶端時,您應該在控制檯中看到INFO消息:WSP5018:文件中加載的WSIT配置:

  4. 如果遇到WS-Policy或wsit-client.xml卡,請使用Netbeans 。我使用Eclipse進行開發,雖然我不太喜歡Netbeans,但我多次將它用作參考,因爲它具有IDE中的配置設置,可使您保護Web服務&編寫Web服務需要安全性的客戶端,它會爲您生成WS-Policy信息的wsit-client.xml WSDLs。嘗試在指向服務的WSDL的Netbeans &中編寫一個Web應用程序以在那裏生成Web服務客戶端&查看生成的文件的外觀。

  5. 你可以在SO上得到一些問題的答案,但是java.net Metro forum也非常活躍,你也可以在那裏得到很好的支持。只需爲「Netbeans/Glassfish中的XYZ」等答案做好準備。