【发布时间】:2013-07-24 04:02:35
【问题描述】:
我正在尝试将两个请求工厂调用相互嵌套。我检索了一个 post 对象,并在成功方法中再次使用相同的对象(仅出于测试目的,对于其他请求,我得到相同的行为,例如持久化)。
问题是:只有第一个请求到达服务器。
我没有收到任何错误消息。如果我调试代码,一切正常,直到第二个请求被触发。然后什么也没有发生。后端的方法没有被调用,前端没有显示错误,即使我为第二个请求的接收者实现了“onFailure”方法。
public class RequestFactoryFindTest extends GWTTestCase{
/**
* must refer to a valid module that sources this class.
*/
public String getModuleName() {
return "com.Test.MyTest";
}
public void test(){
final ClientFactory clientFactory = GWT.create(ClientFactoryImpl.class);
final MyRequestFactory requestFactory = clientFactory.getRequestFactory();
final PostRequest request = requestFactory.postRequest();
request.findPost(1l).fire(new Receiver<PostProxy>() {
@Override
public void onSuccess(PostProxy response) {
final ClientFactory clientFactory = GWT.create(ClientFactoryImpl.class);
final MyRequestFactory requestFactory = clientFactory.getRequestFactory();
final PostRequest request = requestFactory.postRequest();
System.out.println("outer success");
request.findPost(1l).fire(new Receiver<PostProxy>() {
@Override
public void onSuccess(PostProxy response) {
System.out.println("inner success");
}
});
}
});
}
}
谁能解释一下?
编辑:
我尝试了很多东西,比如在事件总线上触发事件、捕获事件并在那里执行我的内部请求工厂调用。但没有任何效果。我认为这是 GWTTestcase 与 RequestFactory 结合的一些问题。 我也改变了我的代码,所以我只使用了一个 clientFactory。
【问题讨论】:
-
我无法解释,但我可以告诉你,你应该只为你的整个应用程序创建一个
MyRequestFactory。您可能也应该为ClientFactory这样做。 -
试过了,但没有任何改变
标签: java gwt request client-server requestfactory