我对REST和RESTlet都是全新的东西 - 昨天晚上我得到了所有东西并进行了通信,但今天早上发现的是,我传入服务器的所有内容都始终为空。GWT 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);
}
后端代码如下(这是目前非常难看 - 我有点沮丧,只是想看到一些东西,并在一堆sysout)
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未来通过为空的问题IM - 很多其他的答案在这里说,以获得查询来获取PARAMS - 但这里的查询为空
下面是调用find的输出,并持续
reference = http://127.0.0.1:8888/users/123
query params = []
query = []
query string =
search query = null
我敢肯定,我在做一些愚蠢的事在这里,我只是不知道如何,现在继续。任何帮助,我做错了什么将不胜感激。
啊,完全错过了 - 谢谢你 – 2012-07-10 23:39:45
我使用的Restlet-2.1-RC5但设置clientResource.setEntityBuffering(真)没有任何影响有完全一样的问题(在Android客户端即在PARAMS。 ,查询等都仍然为空 – William 2012-08-24 23:54:01
@ jerome-louvel你提供的链接不再工作 – xybrek 2015-01-03 20:39:27