GWT проблема с вызовом методов Java из JSNI
Я попробовал пример из Google на этой странице: http://code.google.com/docreader/#p=google-web-toolkit-doc-1-5&s=google-web-toolkit-doc-1-5&t=DevGuideJavaFromJavaScript
Я хочу иметь возможность вызывать метод Java из JSNI, но ничего не происходит. Нет ошибок, но методы не вызываются. Тем не менее, я могу изменить поля из моего класса.
Вот код, который я попробовал:
package com.jsni.client;
import com.google.gwt.core.client.EntryPoint;
public class Testjsnii implements EntryPoint {
String myInstanceField;
static int myStaticField;
void instanceFoo(String s) {
System.out.println(s);
}
static void staticFoo(String s) {
System.out.println(s);
}
public native void bar(Testjsnii x, String s) /*-{
this.@com.jsni.client.Testjsnii::instanceFoo(Ljava/lang/String;)(s);
x.@com.jsni.client.Testjsnii::instanceFoo(Ljava/lang/String;)(s);
@com.jsni.client.Testjsnii::staticFoo(Ljava/lang/String;)(s);
var val = this.@com.jsni.client.Testjsnii::myInstanceField;
}-*/;
public void onModuleLoad() {
bar(this,"Hello");
}
}
Он ничего не печатает на консоли, а только с надписью:
[WARN] [testjsnii] - метод JSNI '@com.jsni.client.Testjsnii::bar(Lcom/jsni/client/Testjsnii;Ljava/lang/String;)' вернул> значение объекта типа JavaScript(1), но был объявлен недействительным; он вообще не должен был возвращать> значение
Интересно, в чем проблема.
Спасибо за помощь.
1 ответ
На самом деле вы столкнулись с проблемой Chrome (10-dev) с плагином GWT DevMode: http://code.google.com/p/google-web-toolkit/issues/detail?id=5778