GWT-出口不生成代码(Java中的Javascript)(gwt-exporter doesn&#

2019-09-16 09:33发布

我想从现有的Java项目(Javascript代码这里原来的问题 )。

我使用GWT与GWT-出口相结合。 我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在我的任何地方war/目录( grep -Ri RoadServer war/*只匹配了.class文件)。 此外,只是要确定,我打开了war/GameEntryPoint.html在我的浏览器(Firefox)的文件和萤火虫只看到game_GameEntryPoint的东西,与开始game

任何想法,为什么这是不工作?

PS我也试过指定@Export@Export("RoadServer")@ExportPackage("game") 没有什么作品。

Answer 1:

啊哈,所以看起来它是在一些bug ExporterUtil.exportAll() 如果类具有非空构造函数或没有它不会导出任何方法。 但是,如果你添加一个空的构造函数来导出类和注释与非空的构造@Export注释它开始工作

您也可以手动导出类:

public class GameEntryPoint implements EntryPoint {

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

}

但要知道,这种方式有时可以导出类错误



文章来源: gwt-exporter doesn't generate code (Java to Javascript)