2012-09-06 69 views
6

我將IBM Rational Application Developer生成的客戶端存根與Java的wsimport進行比較,並注意到IBM RAD生成了一個額外的類,即SOAPProxy類。該類允許設置Web服務的URL。如何從wsimport生成SoapProxy?

如何在Java的wsimport中生成SOAPProxy類? IBM RAD的wsimport和Java的wsimport是一樣的嗎?

下面是由IBM RAD生成的類:

  • ObjectFactory.java
  • package-info.java
  • WSCalculator_Service.java
  • WSCalculator.java
  • WSCalculatorRequest.java
  • WSCalculatorResponse.java
  • WSCalculatorSOAPProxy.java - 這不是在Java的wsimport上生成的。我怎樣才能使用Java的wsimport生成這個?
+0

您正在使用哪種版本的RAD?你如何生成代碼 - 你是否在封閉的EAR項目中使用「準備部署」?你還在做什麼? – Isaac

回答

0

每個工具(JBoss的WS,wsimport的,Apache的CXF,RAD等)從一個WSDL生成類做它略有不同,他們並不都產生相同的類,但它們通常是相似的。但是會有一種方法可以提供自己的指向WSDL的URL。我不熟悉的RAD以及它是如何產生的Web服務,但我的猜測是,該WSCalculator_Service類有一個構造函數一個URL參數:

WSCalculator_Service service = new WSCalculator_Service(new URL("http://www.domain.com/ws/file.wsdl")); 
WSCalculator port = service.getWSCalculatorPort(); 
port.callWebService(param1, param2, ...); 

有時候,需要一個URL也需要一個QName構造函數。我會查看源代碼,並複製它正在使用的QName。

0

在RAD 9.1中,當您在Web服務客戶端彈出嚮導中爲「客戶端類型:」選擇「Java代理」時,它也會創建代理代碼。 RAD附帶的wsimport.exe似乎無法通過命令行創建代理代碼。