使GWT和REST协同工作

时间:2013-09-18 11:58:15

标签: java rest gwt jax-rs resty-gwt

我在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) 

我怎么能至少调试这类问题?

2 个答案:

答案 0 :(得分:2)

首先,您可以在“漂亮”模式下编译为javascript,这不会产生混淆的javascript。在调试之后,浏览器中的javascript是微不足道的。

使用Mojo的Maven GWT插件,可以通过以下行完成:

mvn gwt:compile -Dstyle=PRETTY

然而,在我看来,这与配置有关。也许某种注射变坏或没有进行......

答案 1 :(得分:0)

首先,在模式中编译js。但是,如果您不了解GWT编译器的详细信息,则可能很难扫描已编译的代码并猜测错误发生的位置。

以愚蠢的方式做这件事可能更容易。注释并部署,直到您注释掉,从而找到失败的行!因为我不了解GWT编译器,所以我会做...