gwt-exporter没有生成代码(Java到Javascript)

时间:2012-04-07 19:55:13

标签: java javascript gwt code-generation

我想从现有的Java项目(original question here)生成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目录中的任何地方都没有引用war/grep -Ri RoadServer war/*仅匹配.class个文件)。另外,为了确保,我在浏览器(Firefox)中打开了war/GameEntryPoint.html文件,而Firebug只看到game_GameEntryPoint作为以game开头的内容。

知道为什么这不起作用吗?

P.S。我还尝试使用@Export指定@Export("RoadServer")@ExportPackage("game")。什么都行不通。

1 个答案:

答案 0 :(得分:3)

啊哈,所以看起来好像是ExporterUtil.exportAll()中的一些错误。如果类具有非空构造函数或者没有任何方法,则不会导出它。但是,如果向导出的类添加一个空构造函数,并使用@Export注释注释非空构造函数,它将开始工作

您也可以手动导出课程:

public class GameEntryPoint implements EntryPoint {

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

}

但请注意,这种方式有时会导出错误的类