GWT错误:"类在Gin中使用,但在GWT客户端代码中不可用"

时间:2016-09-14 10:02:35

标签: java spring-mvc gwt gwt-rpc gwtp

好的,我还没有在GWT中经验丰富,这是一个错误,自从我开始使用GWT以来它一直困扰着我,它只是不停地来去。

我在Spring使用Arcbees GWTP Framework。我的代码非常简单。我有简单的POJO就好了

public class EmailTask implements Serializable{
private static final long serialVersionUID = 2395809310736629787L;

private Integer publisherId;
private String targetPublisherId;

public Integer getPublisherId() {
    return publisherId;
}

public void setPublisherId(Integer publisherId) {
    this.publisherId = publisherId;
}

public String getTargetPublisherId() {
    return targetPublisherId;
}

public void setTargetPublisherId(String targetPublisherId) {
    this.targetPublisherId = targetPublisherId;
}
}

在我的Presenter类中,我使用对这样的控制器的异步调用传递了这个POJO的实例。

@Inject TaskServiceAsync taskServiceAsync;

private void myTask(){
    taskServiceAsync.executeTask(emailTaskInstance, new AsyncCallback<String>() {
                @Override
                public void onSuccess(String result) {
                    Window.alert("Success");
                }

                @Override
                public void onFailure(Throwable caught) {
                    Window.alert("Failure!");
                }
            });  
}

控制器:

@Controller
@RequestMapping("/task")
public class TaskController extends BaseRemoteService implements TaskService {
    private static final long serialVersionUID = -325150527276255072L;

    @Override
    public String executeTask(EmailTask emailTask) {
         //TODO: Doing something here
    }
}

正如你所看到的,没有什么太华丽了。但是我在编译时收到以下错误。

[INFO] --- gwt-maven-plugin:2.7.0:compile (default) @ statistics ---

[INFO] Compiling module de.it2media.dps.statistics.DPSStatistics

[INFO]    Ignored 8 units with compilation errors in first pass.

[INFO] Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors.

[INFO]    Computing all possible rebind results for 'com.gwtplatform.mvp.client.DesktopGinjector'

[INFO]       Rebinding com.gwtplatform.mvp.client.DesktopGinjector

[INFO]          Invoking generator 
com.google.gwt.inject.rebind.GinjectorGenerator

[INFO]             [WARN] Class de.it2media.dps.statistics.server.jobs.EmailTask is used in Gin, but not available in GWT client code.

[INFO]             [ERROR] Error injecting de.it2media.dps.statistics.client.application.settings.SettingsPresenter$MyProxy: Unable to create or inherit binding: No @Inject or default constructor found for de.it2media.dps.statistics.client.application.settings.SettingsPresenter$MyProxy

原谅我的单纯抱怨,但我不知道我在这里做错了什么。我以前写过类似的代码并且它运行得很好。有人可以解释错误Class is used in Gin, but not available in GWT client code甚至意味着什么吗?我是否必须以某种方式在某处自动装配?

1 个答案:

答案 0 :(得分:1)

首先,您应该将运行配置的GWT中的logLevel设置为TRACE

使用TRACE会显示类名和行号的错误。

消息告诉你,班级de.it2media.dps.statistics.server.jobs.EmailTask 由GIN(客户端)使用,但不是源代码的一部分,它将由GWT编译。

EmailTask类放在共享包中,消息应该消失。