我的框架项目有一个EJB架构设计,客户端GWT2.7 + gwt-material 1.6和smartGWT用于maven模型上的一些小部件,我也使用Classic Dev Mode(最适合我)工具进行调试,我还没有对此有任何问题,直到今天......
当我将GWT2.7升级到2.8时,我写了一个@JsType示例,我得到了下一个错误:
com.google.gwt.core.client.JavaScriptException :( null)@ com.mypackage.MyApplication $ SomeClassJsType :: getName()([]):null
这是班级:
@JsType(isNative=true, namespace = "com.cnames")
public class SomeClassJsType {
@JsMethod
public static native String getName();
}
以下是我在EntryPoint中使用该类的方法
rootPanel.add( new Label( SomeClassJsType.getName() ) );
这是HTML页面中的javascript片段
<body>
<script type="text/javascript">
com = { cnames: {} };
com.cnames.SomeClassJsType = function () {
this.name = "hello";
};
com.cnames.SomeClassJsType.getName = function () {
this.name = "world";
};
</script>
<script type="text/javascript" language="javascript" src="Application/Application.nocache.js"></script>
</body>
我的目标是,在Clasic Dev Mode上调试我的项目。
为什么呢? 如果我将GWT Material 1.6升级到2.0-rc2,我会收到下一个错误。
com.google.gwt.user.client.ui.AttachDetachException: Exception caught: 2 exceptions caught: Exception caught: (null) @gwt.material.design.client.js.JsMaterialElement::displayEffect()([]): null; Exception caught: (null) @gwt.material.design.client.js.JsMaterialElement::displayEffect()([]): null
我怀疑这是由于@JsType注释
任何建议?
问候!
答案 0 :(得分:3)
JsInterop只能与SuperDevMode一起使用,遗留devmode所需的所有字节码重写都没有实现(对于仅适用于选择和/或古老浏览器的弃用功能,浪费时间)