如何使用jax-ws创建和处理复杂对象?

时间:2011-11-03 18:34:19

标签: java web-services object

在服务器端,我创建了一个名为Fragment的对象。让我们说它是一些字符串的数据容器。

一个简单的WebMethod,它接受一个String并返回另一个,它非常简单易行。但是,如果我尝试将一个对象从服务器发送到客户端,它会变得复杂。我发布了WebService并使用 wsimport 来创建我的客户端存根类。

我想将一组Fragments返回给客户端。 wsimport 创建一个HashSet类,它是调用相应服务器方法的方法的返回类型。

我无法将此HashSet强制转换为标准java util HashSet如何处理此类复杂对象?

编辑: 这是webservice发布的方法的签名:

@WebMethod
public HashSet<Fragment> topicIntersect(File tm1, String loc1, File tm2,
        String loc2)

这是 wsimport 生成的内容:

/**
 * 
 * @param arg3
 * @param arg2
 * @param arg1
 * @param arg0
 * @return
 *     returns webservice.HashSet
 */
@WebMethod
@WebResult(partName = "return")
public HashSet topicIntersect(
    @WebParam(name = "arg0", partName = "arg0")
    String arg0,
    @WebParam(name = "arg1", partName = "arg1")
    String arg1,
    @WebParam(name = "arg2", partName = "arg2")
    String arg2,
    @WebParam(name = "arg3", partName = "arg3")
    String arg3);

webservice.HashSet也是一个没有方法生成的空类......

1 个答案:

答案 0 :(得分:1)

我不确定JAX-WS是否直接支持HashSet。但是,List肯定会奏效。此外,如果使用代码优先方法,则无需生成客户端存根。您应该能够使用服务实现的相同接口。