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

Другие вопросы по тегам