Я пишу приложение, в котором данные из текстового файла сохраняются в массиве и позднее переносится в виджет GWT Highcharts как массив типа Number. Я написал сервлет, который записывает данные из файла в массив, и я застрял здесь. Я не знаю, как передать содержимое массива клиентской части приложения. Есть ли быстрый и простой способ сделать это?Доступ к массиву GWT RPC
Этот код, написанный мной:
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);
}
вы уже установили RPC. теперь вам просто нужно вызвать его на стороне клиента и передать полученный массив в ваши диаграммы. http://www.gwtproject.org/doc/latest/tutorial/RPC.html#invoke для примера – Tobika
Я создал 'private DataPoints dataPointsService = GWT.create (DataPoints.class);' и 'private Number [] dataTxtPoints = new Number [10000]; 'на стороне клиента, но я понятия не имею, как передать значения из arrayNumber в dataTxtPoints. – MarkTrait
El Hoss просто дал вам пример .. в методе 'onSuccess' вы можете присвоить результат переменной dataTxtPoints – Tobika