Gwt 如何正确添加请求上下文

Gwt 如何正确添加请求上下文,gwt,request,Gwt,Request,我想做的是收集几个请求,然后一次性将它们解雇 我的代码: RequestContext contextA =requestFactory .dataRequest().save(...).to(...); RequestContext contextB =requestFactory .itemRequest().save(...).to(...); requestA.append(requestB); requestA.fire(); dataRequest和

我想做的是收集几个请求,然后一次性将它们解雇 我的代码:

RequestContext contextA =requestFactory
        .dataRequest().save(...).to(...);
RequestContext contextB =requestFactory
        .itemRequest().save(...).to(...);
requestA.append(requestB);
requestA.fire();
dataRequest和item request都扩展了RequestContext

当我尝试这样做时,我得到:

原因:java.lang.IllegalStateException: 提供的RequestContext已在com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.append(AbstractRequestContext.java:484)上更改


那么我做错了什么?

附加()的参数必须是干净的
RequestContext

您可以将代码更改为:

ItemRequest contextB = requestFactory.itemRequest();
contextA.append(contextB);
contextB.save(...).to(...);
或者更简单地说:

requestA.append(requestFactory.itemRequest()).save(...).to(...);
基本原理:在内部,附加的
RequestContext
s使用共享状态;调用
append()
时,追加的
RequestContext
的内部状态将替换为要追加的状态。如果它不是空的,您将丢失数据(没有合并),因此它将失败