gpt4 book ai didi

java - 使用 RequestFactory 保存到 GAE 时出现 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 14:19:24 27 4
gpt4 key购买 nike

我正在尝试使用 objectify 保留一个简单的类,但没有成功。

对长篇文章表示歉意,但我认为更多信息总比更少更好。

我按照 David M. Chandler 的例子:

http://turbomanage.wordpress.com/2011/03/25/using-gwt-requestfactory-with-objectify/

但我不断收到 NullPointerException。

我不知道我做错了什么,但我使用的类如下:

我的代理 DatastoreObjectProxy:

@ProxyFor(value = DatastoreObject.class, locator = ObjectifyLocator.class)
public interface DatastoreObjectProxy extends EntityProxy{

Long getId();
void setId(Long id);
Integer getVersion();
void setVersion(Integer id);

}

和BeingProxy:

@ProxyFor(value = Being.class, locator = ObjectifyLocator.class)
public interface BeingProxy extends DatastoreObjectProxy {

String getName();
void setName(String name);
String getFiscalNumber();
void setFiscalNumber(String fiscalNumber);

}

和我的请求工厂:

public interface MyRequestFactory extends RequestFactory{

@Service(value = BeingDao.class, locator = DaoServiceLocator.class)
interface BeingRequestContext extends RequestContext {
Request<List<BeingProxy>> listAll();
Request<Void> save(BeingProxy being);
Request<BeingProxy> saveAndReturn(BeingProxy being);
Request<Void> removeBeing(BeingProxy being);
}

BeingRequestContext beingRequestContext();

}

最后,我的 UI 使用以下代码来创建和检索 Being 实体:

@UiHandler("btnAdd") void onBtnAddClick(ClickEvent 事件) {

    //Validate name
//TODO warn user if invalid
if (txtName==null||txtName.getText().equals("")){return;}
String n = txtName.getText();

//Validate fiscal number
//TODO warn user if invalid
if (txtFiscalNumber==null||txtFiscalNumber.getText().equals("")){return;}
String fn = txtFiscalNumber.getText();

BeingRequestContext reqCtx = rf.beingRequestContext();
final BeingProxy being = reqCtx.create(BeingProxy.class);
being.setName(n);
being.setFiscalNumber(fn);

Request<BeingProxy> saveRequest = reqCtx.saveAndReturn(being);
saveRequest.fire(new Receiver<BeingProxy>(){
@Override
public void onSuccess(BeingProxy response) {
addToList(response);
}
});

这会引发前面提到的异常。

我注意到服务器代码已被执行。所以我猜问题出在请求工厂或客户端。但我检查了三次代码,没有发现任何错误。

感谢您的宝贵时间。

最诚挚的问候。

最佳答案

我想出了这个。我没有正确初始化请求工厂。我必须使用事件总线初始化它:

final MyRequestFactory rf = GWT.create(MyRequestFactory.class);

EventBus eventBus = new SimpleEventBus();
rf.initialize(eventBus);

关于java - 使用 RequestFactory 保存到 GAE 时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17752130/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com