Java 使用JAX-WS声明web方法中未使用的类型

Java 使用JAX-WS声明web方法中未使用的类型,java,web-services,Java,Web Services,我有一个JavaWebService方法,出于性能原因,需要以zip模式将一个大对象列表返回给.NETCF应用程序。wsdl是从Tomcat自动生成的。 我已经实现了以下代码: @WebService public class WS { @WebMethod public byte[] getData () { // Get Data object list List<Data> list = getDataFromDatabase(); Data[]

我有一个JavaWebService方法,出于性能原因,需要以zip模式将一个大对象列表返回给.NETCF应用程序。wsdl是从Tomcat自动生成的。 我已经实现了以下代码:

@WebService
public class WS {
  @WebMethod
  public byte[] getData () {
    // Get Data object list
    List<Data> list = getDataFromDatabase();
    Data[] arr = new Data[list.size()];
    list.toArray(arr);

    // Compress data
    byte[] zipData = getZipData(arr);
    return zipData;
  }
}
现在,.NETCF知道数据对象的存在,因为它出现在生成的wsdl中,但我什么都不使用这个方法。 在JavaWebService代码中声明数据对象是否有任何方法或注释而不使用方法。?例如:

@WebService
public class WS {
  @WebType
  public Data;

  @WebMethod
  public byte[] getData () { ... }
}
@XmlAccessorType(XmlAccessType.FIELD)
public class Data {
...
}
谢谢

根据,您的字节数组应该映射到
base64binary
hexbinary
类型。 为了在
wsdl
文件中包含一个复杂类型(实际上它将放在
xsd
中,该xsd在
wsdl
中引用),我在类定义中添加了
@xmlacessortype
注释。例如:

@WebService
public class WS {
  @WebType
  public Data;

  @WebMethod
  public byte[] getData () { ... }
}
@XmlAccessorType(XmlAccessType.FIELD)
public class Data {
...
}
xsd
应该包含该类的声明,该声明包含所有字段


但是如果您从方法返回
字节[]
,我看不出声明
数据类型有什么帮助。您必须寻找从返回类型到可以在客户端中使用的类型的映射。

我遵循以下步骤:当我在Java WebService中拥有数据对象时,我将其序列化为XML,然后将XML字符串转换为byte[],最后压缩此字节并发送。当.NETCF收到字节[]时,解压缩以获取原始XML并反序列化到数据对象。如果数据对象未在wsdl中发布,.NETCF无法对其进行反序列化。