私は問題があります。大規模な GWT(2.4) アプリでは、gwt-code-splitting の使用をやめました。小さな js-parts 用の GWT コンパイラ トリミング アプリ。
しかし、いくつかのモジュールをロードしたい場合
final Module form = ModuleFactory.getInstance().getModule(modumesName);
/ * /
private Module module = null;
public Module getModule(String moduleName){
if (moduleName.equals("M1")) {
GWT.runAsync(new RunAsyncCallback() {
@Override
public void onSuccess() {
module = GWT.create(M1.class);
}
@Override
public void onFailure(Throwable arg0) {
Window.alert("not load M1");
}
});
}
return module;
}
M1拡張モジュール
ウィジェットM1の作成を初めて呼び出すと、jsエラーが発生しました
「キャッチされていない com.google.gwt.event.shared.UmbrellaException: 1 つ以上の例外がキャッチされました。UmbrellaException#getCauses で完全なセットを参照してください」
しかし、別の機会に、モジュール M1 を入手しました。私が見た開発ツールでは、その分割部分がロードされました。
public class CreateModuleWidget extends Composite{
private static final Binder binder = GWT.create(Binder.class);
interface Binder extends UiBinder<Widget, CreateModuleWidget> {}
public CreateModuleWidget() {
/*initparams**/
}
@UiHandler("createButt")
void onCreateClick(ClickEvent event) {
String modumesName = "M1";
final WidgetDialog dialog = new WidgetDialog(moduleName, true);
final Module form = ModuleFactory.getInstance().getModule(modumesName);
dialog.setDialogWidget(form);
dialog.show();
}
}
public class ModuleFactory{
private Module form = null;
private static ModuleFactory instance = null;
public static ModuleFactory getInstance(){
if(instance == null){
instance = new ModuleFactory();
}
return instance;
}
public Module getModule(String moduleName){
if (moduleName.equals("M1")) {
GWT.runAsync(new RunAsyncCallback() {
@Override
public void onSuccess() {
module = GWT.create(M1.class);
}
@Override
public void onFailure(Throwable arg0) {
Window.alert("not load M1");
}
});
}
return module;
}
}
キャッチされていない com.google.gwt.event.shared.UmbrellaException: 1 つ以上の例外がキャッチされました。UmbrellaException#getCauses BDC16B1A93B4190A8C1DD66EEF9838B8.cache.html:1435 で完全なセットを参照してください (匿名関数)