我正在尝试使用简单的瘦客户端与我的(functionnal)Reslet服务器+ Objectify框架进行通信。 我得到一个500内部错误,因为它似乎我发送一个Null对象(解析/序列化错误?),但我不知道如何修复它,我不太了解序列化。如果你可以帮助我,那真是太棒了! :)
这是我的客户: 它的界面:
public interface AdminControllerInterface {
@Put
void create(Epreuve ep);
@Get
Epreuve getAllEpreuve();
}
其控制器:
public class AdminController {
public final ClientResource cr = new ClientResource(
EngineConfiguration.gae_path + "/rest/admin");
public AdminController() {
EngineConfiguration.getInstance();
}
public void create(Epreuve epreuve) throws Exception {
final AdminControllerInterface uci = cr.wrap(AdminControllerInterface.class);
try {
uci.create(epreuve);
System.out.println( "Creation success !");
} catch (Exception e) {
System.out.println( "Creation failed !");
throw e;
}
}
public Epreuve getAllEpreuve(final long ordre) {
//lets focus on the create method first
}
}
服务器端:接口与控制器相同:
public class AdminController extends ServerResource implements AdminControllerInterface{
@Override
public void create(Epreuve ep) {
// TODO Auto-generated method stub
Epreuve epreuve = new Epreuve();
epreuve.setQuestion(ep.getQuestion());
epreuve.setFirstAnswer(ep.getFirstAnswer());
epreuve.setSecondAnswer(ep.getSecondAnswer());
epreuve.setTrueAnswer(ep.getTrueAnswer());
epreuve.setTimeToAnswer(ep.getTimeToAnswer());
epreuve.setLatitude(ep.getLatitude());
epreuve.setLongitude(ep.getLongitude());
epreuve.setVille(ep.getVille());
epreuve.setOrdre(ep.getOrdre());
ofy().save().entity(epreuve).now();
}
@Override
public Epreuve getAllEpreuv() {
// TODO Auto-generated method stub
return null;
}
}
服务器在尝试执行ep.getQuestion()=>时返回500 - 内部错误它产生nullPointerException。关于我做错了什么的任何想法? :)