既存のJavaプロジェクト(original question here)からJavascriptコードを生成したい。gwt-exporterがコードを生成しない(Java to Javascript)
gwtをgwt-exporterと組み合わせて使用します。私がGWTをコンパイルした後、生成されたコードのいずれにも自分の型がない。
私はRoadServer
への参照は、どこにも私のwar/
ディレクトリ(grep -Ri RoadServer war/*
試合だけではありません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;
}
}
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();
}
}
を持っています.class
ファイル)。また、確かに、私はwar/GameEntryPoint.html
ファイルを私のブラウザ(Firefox)に開きました。そして、Firebugはgame_GameEntryPoint
だけをgame
で始まるものと見ています。
これはなぜ機能しないのでしょうか?
P.S.私も@Export
と@Export("RoadServer")
を@ExportPackage("game")
で指定しようとしました。何も動作しません。
+1すてきな答えです! – GingerHead
ありがとうございます。これを行うにはコンストラクタとクラスの両方に '@ Export'アノテーションを追加しなければなりませんでしたが、やっとそれができました。また、カスタム型の配列を返すメソッドを持つクラスにも問題がありました。特定の配列に値を設定するように変更すると、その問題も修正されました。 gwt-exporterのドキュメントにはこれらの問題がリストされていないのは残念です。 – Yuval
エクスポート可能なクラスには、引数なしコンストラクタか、JavaScriptObjectを受け入れるコンストラクタが必要です。この理由で@Exportをマークしたクラスをエクスポートできない場合は、コンパイル時にエラーまたは警告を出すといいでしょう。 – funkybro