我无法解释以下情况:
我进行RPC调用,将服务器文件中的数据加载到可序列化对象列表中。
问题如下:
就我所知,调用执行完全正常(这就是为什么我没有发布接口和服务器端代码)。当我在客户端设置列表时,一切都很好(我检查setData()中的大小)。但是,当我想将列表分配给类调用中的对象时,我得到一个空列表(sizecheck返回nullpointer)。
以下是客户端代码:
public class DataImportServiceClientImpl {
private DataImportServiceAsync service;
private List<Datarow> data;
public DataImportServiceClientImpl(String url){
this.service = GWT.create(DataImportService.class);
ServiceDefTarget endpoint = (ServiceDefTarget) this.service;
endpoint.setServiceEntryPoint(url);
}
public void readInput(String Auswertung){
this.service.readInput(Auswertung, new DefaultCallback());
}
public List<Datarow> getData() {
return data;
}
public void setData(List<Datarow> data) {
this.data = data;
System.out.println(data.size()); //returns the correct value
}
private class DefaultCallback implements AsyncCallback {
@Override
public void onFailure(Throwable caught) {
System.out.println("An Error has occured!");
}
@Override
public void onSuccess(Object result) {
if(result instanceof List<?>){
List<Datarow> temp = (List<Datarow>) result;
setData(temp);
}
}
}
}
我在这里称呼它(这显然是一个不同的类):
private DataImportServiceClientImpl importer = new DataImportServiceClientImpl(GWT.getModuleBaseURL()+"DataImport");
private String Auswertung = "xyz";
private List<Datarow> data = new ArrayList<Datarow>();
public void onModuleLoad() {
importer.readInput(Auswertung);
data = importer.getData();
System.out.println(importer.getData().size()); //returns Nullpointer = same for data.size()