2

既存の Java プロジェクトから Javascript コードを生成したい (元の質問はこちら)。

GWT を gwt-exporter と組み合わせて使用​​します。GWT をコンパイルした後、生成されたコードのいずれにも型が表示されません。

私は持っている

GameEntryPoint.java

package game.client;

import org.timepedia.exporter.client.ExporterUtil;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.JavaScriptObject;

public class GameEntryPoint implements EntryPoint {

    @Override
    public void onModuleLoad() {
        ExporterUtil.exportAll();
    }

}

RoadServer.java

package game.client;

import org.timepedia.exporter.client.Exportable;

public class RoadServer implements Exportable {
    int _index;
    int _id;
    public RoadServer(int index,int id){
        this._id=id;
        this._index=index;
    }
}

私のディレクトリRoadServerのどこにも参照がありません(ファイルのみに一致します)。また、念のため、ブラウザ (Firefox) でファイルを開いたところ、Firebugは.war/grep -Ri RoadServer war/*.classwar/GameEntryPoint.htmlgame_GameEntryPointgame

なぜこれが機能しないのですか?

PS私も と を指定@Export@Export("RoadServer")てみまし@ExportPackage("game")た。何も機能しません。

4

1 に答える 1

3

ああ、これは のバグのようExporterUtil.exportAll()です。クラスに空でないコンストラクターがある場合、またはメソッドがない場合、クラスはエクスポートされません。ただし、エクスポートされたクラスに空のコンストラクターを追加し、空でないコンストラクターに@Export注釈を付けると、機能し始めます

クラスを手動でエクスポートすることもできます。

public class GameEntryPoint implements EntryPoint {

    @Override
    public void onModuleLoad() {
        ExporterUtil.exportAll();
        GWT.create(RoadServer.class); //forcing to export road server
    }

}

ただし、この方法ではエラーのあるクラスをエクスポートする場合があることに注意してください

于 2012-04-07T20:48:56.990 に答える