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

Java 如何使用jax-ws创建和处理复杂对象?,java,web-services,object,Java,Web Services,Object,在服务器端,我创建了一个名为Fragment的对象。假设它是一些字符串的数据容器 一个简单的WebMethod,它接受一个字符串并返回另一个字符串,非常简单,易于实现。但如果我试图将一个对象从服务器发送到客户端,它会变得复杂。我发布Web服务并使用wsimport创建客户端存根类 我想向客户端返回一组片段。wsimport创建一个HashSet类,该类是调用相应服务器方法的方法的返回类型 我无法将此哈希集强制转换为标准的java util哈希集如何处理如此复杂的对象 编辑: 这是webservi

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

一个简单的WebMethod,它接受一个字符串并返回另一个字符串,非常简单,易于实现。但如果我试图将一个对象从服务器发送到客户端,它会变得复杂。我发布Web服务并使用wsimport创建客户端存根类

我想向客户端返回一组片段。wsimport创建一个HashSet类,该类是调用相应服务器方法的方法的返回类型

我无法将此哈希集强制转换为标准的java util哈希集如何处理如此复杂的对象

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

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

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

我不确定JAX-WS是否直接支持HashSet。然而,这个列表肯定会起作用。此外,如果使用代码优先的方法,则不需要生成客户机存根。您应该能够使用与服务实现相同的接口。

请提供web服务方法的签名(包括导入)。它也不支持哈希集和列表。。。这就是创建这些存根类(webservice.hashset)的原因。“代码优先”是什么意思?“代码优先”是指从用Java实现服务开始,然后从中生成WSDL。显然,然后您将使用该WSDL生成客户机存根。这种方法(从生成的WSDL生成客户机代码)有时与Axis2(POJO服务的ADB客户机存根)一起使用,但对于JAX-WS来说,它不是正确的方法。您有什么建议我可以在哪里阅读这些内容?一个小教程还是一个小实现示例?以下问题有几个指向JAX-WS教程和文档的链接:
/**
 * 
 * @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);