2012-10-26 50 views
0

我正在使用JAX-WS web服務。我需要編寫一個Web服務,公開一個將Object作爲參數的方法。因此,調用此Web服務的客戶端可以傳遞任何類型的對象,包括用戶定義的類對象。對於例如爲:webservice公開了一種將對象作爲參數的方法

public String invokeMe(Ojbect obj); 

從客戶端Web Service:我通過我的用戶定義的類對象作爲參數傳遞給他的公開方法。

Pitta obj = new Pitta(); //Pitta is the name of a class. 

例如爲:

String result = invokeMe(obj); 

任何人都可以請幫助我。

+0

你能說清楚爲什麼你想要傳遞一個任意對象到invokeMe()。即使這確實起作用,您的Web服務可能無法對您發送的內容做任何有意義的事情,因爲它只是Object的一個實例。 – PhilDin

回答

1

您無法創建JAX-WS網絡方法,該方法將java.lang.Object作爲參數。 JAX-WS基於JAXB,所以您只能通過JAXB支持的類型作爲Web方法參數。 java.lang.Object不是JAXB支持的類型。

我的建議是創建一個對象,並將它作爲所有其他可能作爲參數傳遞給您的Web方法的對象的父對象。對於例如爲:

public class ParentObj {...} 

public class WebParam1 extends ParentObj {...} 

public class WebParam2 extends ParentObj {...} 

public class WebParam3 extends ParentObj {...} 

和方法:

public void someMethod(ParentObj obj) {...} 

然後你就可以通過WebParam1WebParam2WebParam3

當然,如果您使用Java-First方法,請不要忘記註釋。如果WSDL-FIRST:寫XSD代表你的對象。

相關問題