Я кодирую в GWT 2.3, используя Eclipse. Хотя у меня был опыт программирования, он был ограничен клиентской стороной. Мой текущий проект включает создание картографической программы, которая берет список точек из листа Excel и размещает их на предварительно определенном изображении. Теперь у меня подключен мой сервлет и клиентский код, и у меня уже есть представление о том, как читать файл Excel.
Моя текущая проблема: Я получаю следующую ошибку при загрузке приложения в Firefox в режиме разработки:
Что-то отличное от int
было возвращено методом JSNI '@com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader::readInt()
': значение JS типа undefined, ожидаемое int
Консоль режима разработки не выдаёт мне ошибок при запуске, те, что говорят, что есть [ПРЕДУПРЕЖДЕНИЕ] с двумя вещами, которые я не использую (изображения, которые я назвал неправильно, но не загружаю никогда).
В настоящее время мой код выглядит следующим образом:
В моем Floor.java
коде на стороне клиента:
MyServiceAsync service = (MyServiceAsync) GWT.create(MyService.class);
AsyncCallback<String> callback = new AsyncCallback<String>() {
public void onFailure(Throwable caught) {
printerModel.setText("FAILED");
String details = caught.getMessage();
printerModel.setText(details);
}
@Override
public void onSuccess(String result) {
//I purposefully have this as an empty method so I could figure out the error
}
};
service.readFile("PrinterList.xls", callback);
По моему MyService.java
:
>public String readFile(String s);
In `MyServiceImpl.java`:
>public String readFile(String s) {
// TODO Auto-generated method stub
try {
} catch (Exception e) {
}
return "foo";
}
Мой AsyncCallback
тип String
, что, похоже, вызывает ошибку. Метод, который вызывает мой клиентский код, в этот момент возвращает одну строку «fubar» (для простоты). Я думал, что строки были автоматически сериализуемые , но я не уверен. Итак, как я могу получить эту ошибку, чтобы уйти? А как мне сделать сериализованный код сервера?