我在 DevMode 中有这段工作代码,但是当我在编译代码(实时)中运行它时,它会在 Javascript 浏览器控制台中抛出错误:
代码:
MyService service = GWT.create(MyService.class);
// This works
service.createStuff(title.getText(), content.getText(), new MethodCallback<MyModel>() {
@Override
public void onSuccess(Method method, MyModel resp) {
GWT.log("Response from server: " + resp);
}
@Override
public void onFailure(Method method, Throwable exception) {
GWT.log(exception.getMessage());
}
});
// This does not work
service.readStuff(id, new MethodCallback<MyModel>() {
@Override
public void onSuccess(Method method, MyModel model) {
}
@Override
public void onFailure(Method method, Throwable exception) {
}
});
错误:
com.google.gwt.core.client.JavaScriptException: (TypeError): Cannot call method 'ef' of null
at Unknown.nn(StackTraceCreator.java:168)
at Unknown.tl(StackTraceCreator.java:421)
at Unknown.SU(Exceptions.java:29)
at Unknown.Hjb(SubmittedPage.java:91)
at Unknown.qlb(AbstractRequestCallback.java:72)
at Unknown.Nu(Request.java:287)
at Unknown.qv(RequestBuilder.java:395)
at Unknown.anonymous(XMLHttpRequest.java:287)
at Unknown.Im(Impl.java:168)
at Unknown.Lm(Impl.java:214)
at Unknown.anonymous(Impl.java:57)
我怎样才能至少调试这类问题?
最佳答案
首先,您可以在“漂亮”模式下编译为 javascript,这不会产生混淆的 javascript。之后在浏览器中调试 javascript 就很简单了。
使用 Mojo 的 Maven GWT 插件,这是通过以下行完成的:
mvn gwt:compile -Dstyle=PRETTY
然而,在我看来,这与配置有关。也许某种注入(inject)变坏了或没有进行……
关于java - 让 GWT 和 REST 协同工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18871655/