当我想要在我的Request Verifier中检索帖子的http主体时,它有点重置我的实体,当我想在我的资源类中获取http主体时,我得到一个nullpointer异常。
验证:
JsonRepresentation jsonrep;
try {
Representation entity = request.getEntity();
jsonrep = new JsonRepresentation(entity);
//bug: entity resets when getJsonObject is being called.
JSONObject jsonobj = jsonrep.getJsonObject();
if(companyId != jsonobj.getInt("id_companies")){
return Verifier.RESULT_INVALID;
}
...
AppResource :
@Post
public Representation addApp(Representation rep) throws Exception{
//rep is null
JsonRepresentation jsonrep = new JsonRepresentation(rep);
当我不打电话时:
JSONObject jsonobj = jsonrep.getJsonObject();
它运作正常。
是否有人面临同样的问题或得到解决方案?
提前致谢!
答案 0 :(得分:2)
实际上,默认情况下,表示是一个不存储表示内容的InputRepresentation。
在您的情况下,最简单的方法是将表示包装到验证程序中的StringRepresentation中:
Representation entity = request.getEntity();
StringRepresentation sEntity = new StringRepresentation(entity);
request.setEntity(sEntity);
JsonRepresentation jsonrep = new JsonRepresentation(sEntity);
然后,字符串表示将自动提供给您的服务器资源方法...
希望它对你有所帮助。 亨利