公开一个以Object作为参数的方法的webservice

时间:2012-10-26 10:57:38

标签: java web-services jax-ws

我正在使用JAX-WS Web服务。我需要编写一个Web服务,公开一个以Object作为参数的方法。因此,调用此Web服务的客户端可以传递任何类型的对象,包括用户定义的类对象。例如:

public String invokeMe(Ojbect obj);

从客户端Web服务:我将我的用户定义的类对象作为参数传递给公开的方法。

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

例如:

String result = invokeMe(obj); 

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

您无法创建以JAX-WS作为参数的java.lang.Object网络方法。 JAX-WS基于JAXB,因此您只能将JAXB支持的类型作为网络方法参数传递。 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代表您的对象。