【发布时间】:2012-07-08 07:16:44
【问题描述】:
我对 REST 和 RESTlet 都是全新的 - 我昨晚把所有东西都整理好并进行了通信,但今天早上我发现我传递到服务器的所有东西总是变成空的。
作为一个示例应用程序,我有以下内容 - 一个用户对象化实体(id、emailAddress 和版本)和一个 RESTUserProxy 对象(id、emailAddress) - 我最初不确定是否可以将 Objectify 实体传回并在看不到任何东西后将其切换到代理对象 - 如果我能让它以这种方式工作,我将尝试将其切换回来
前端如下:
public interface RESTUserResourceProxy extends ClientProxy {
@Get
public void find(String emailAddress, Result<RESTUserProxy> callback);
@Put
public void persist(RESTUserProxy user, Result<Void> callback);
@Delete
public void delete(RESTUserProxy user, Result<Void> callback);
}
后端代码如下(目前这非常难看 - 我只是想看看一些东西并放入大量的系统输出而有点沮丧)
public class RESTUserServerResource extends ServerResource implements RESTUserResource {
private final UserDao userDao;
public RESTUserServerResource() {
System.out.println("CREATED USER RESOURCE IMPL");
userDao = new UserDao();
}
@Override
@Get
public RESTUserProxy find() {
System.out.println("reference = " + getReference());
Form queryParams = getReference().getQueryAsForm();
System.out.println("query params = " + queryParams);
System.out.println("query = " + getQuery());
System.out.println("query string = " + getQuery().getQueryString());
String searchQuery = (String) getRequest().getAttributes().get("searchQuery");
System.out.println("search query = " + searchQuery) ;
return null;
// if (emailAddress == null) {
// return null;
// }
// System.out.println("user resource impl find [" + emailAddress + "]");
// final User user = userDao.find(emailAddress.getText());
// if (user != null) {
// System.out.println("found user ");
// return new RESTUserProxy(user.getId(), user.getEmailAddress());
// } else {
// System.out.println("found absolutely nothing");
// return null;
// }
}
@Override
@Put
public void persist(RESTUserProxy userProxy) {
System.out.println("user proxy = " + userProxy);
if (userProxy == null) {
return;
}
final User user = userDao.find(userProxy.getId());
user.setEmailAddress(userProxy.getEmailAddress());
user.setId(userProxy.getId());
userDao.persist(user);
}
@Override
@Delete
public void delete(RESTUserProxy userProxy) {
final User user = userDao.find(userProxy.getId());
userDao.delete(user);
}
}
我遇到的问题是 eerythings 以 null 的形式出现——这里的许多其他答案都说要让查询获取参数——但这里的查询是 null
下面是调用find和persist的输出
reference = http://127.0.0.1:8888/users/123
query params = []
query = []
query string =
search query = null
我确定我在这里做了一些愚蠢的事情,我现在不知道如何进行。任何关于我做错了什么的帮助将不胜感激。
【问题讨论】:
标签: google-app-engine gwt restlet