繁体   English   中英

GWT RPC阵列访问

[英]GWT RPC array access

我正在编写一个应用程序,其中将文本文件中的数据保存到数组中,然后作为Number类型的数组稍后传输到小部件GWT Highcharts。 我写了一个servlet,它将文件中的数据写到数组中,我被困在这里。 我不知道如何将数组的内容传递给应用程序的客户端。 有没有快速简便的方法来做到这一点?

我写的这段代码:

DataPointsImpl.java:

package com.pwste.gwt.server;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.pwste.gwt.client.DataPoints;

public class DataPointsImpl extends RemoteServiceServlet implements DataPoints {
    private static final long serialVersionUID = 1L;

    @Override
    public Number[] getDataPoints() throws IOException {
    File dataFile = new File("points.txt");
    FileReader dataFileReader = new FileReader(dataFile);
    BufferedReader dataBufferedReader = new BufferedReader(dataFileReader);
    Number[] arrayNumber = new Number[10000];
    String dataString = dataBufferedReader.readLine();

    for (int i = 0; i < arrayNumber.length; i++) {
        arrayNumber[i] = Integer.parseInt(dataString);
        dataString = dataBufferedReader.readLine();
    }
    dataBufferedReader.close();

    return arrayNumber;
    }
}

DataPoints.java:

package com.pwste.gwt.client;

import java.io.IOException;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("dataPoints")
public interface DataPoints extends RemoteService {
    Number[] getDataPoints() throws IOException;
}

DataPointsAsync.java:

package com.pwste.gwt.client;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface DataPointsAsync {
    void getDataPoints(AsyncCallback<Number[]> callback);
}

您必须在客户端使用Async-Interface:

private DataPointsAsync dataPointsService = GWT.create(DataPoints.class);

您可以通过以下方式使用该服务:

dataPointsService.getDataPoints(AsyncCallback<Number[]>(){

          @Override
          public void onSuccess(Number[] result) {
            // result contains the returning values
          }

          @Override
          public void onFailure(Throwable caught) {
            Window.alert("panic");
          }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM