0
我有一個Java WebService方法,出於性能原因需要將zip對象的大對象列表返回給.NETCF應用程序。 wsdl是從Tomcat自動生成的。 我已經實現了這個代碼:使用JAX-WS聲明Web方法中未使用的類型
@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;
}
}
的問題是數據對象未在WSDL中聲明,當.NETCF程序解壓縮的結果,它無法解析的類型。所以,我在WebService的實現了這個另一種方法:
@WebMethod
public Data[] getData() { ... }
現在,.NETCF知道數據對象的存在,因爲它出現在生成的WSDL,但我不使用這種方法的任何東西。 是否有任何方式或註解用於在不使用方法的情況下在Java WebService代碼中聲明Data對象?例如:
@WebService
public class WS {
@WebType
public Data;
@WebMethod
public byte[] getData() { ... }
}
由於
我遵循這些步驟:當我在Java WebsService中有Data對象時,我將它序列化爲XML,然後將XML字符串轉換爲byte [],最後壓縮這些字節併發送。當.NETCF接收到byte []時,解壓縮以獲取原始XML並反序列化爲Data對象。如果Data對象未在wsdl中發佈,則.NETCF無法對其進行反序列化。 – user1151816 2012-02-10 11:28:48