1

当我想在我的请求验证器中检索帖子的 http 正文时,它有点重置我的实体,当我想在我的资源类中获取 http 正文时,我得到一个空指针异常。

验证者

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;
            }
...

应用资源

@Post
public Representation addApp(Representation rep) throws Exception{
//rep is null
    JsonRepresentation jsonrep = new JsonRepresentation(rep);

当我不打电话时:

                JSONObject jsonobj = jsonrep.getJsonObject();

它工作正常。

有没有人面临同样的问题或有解决方案?

提前致谢!

4

1 回答 1

2

事实上,默认情况下,表示是一个不存储表示内容的 InputRepresentation。

在您的情况下,最简单的方法是将表示包装到您的验证程序中的 StringRepresentation 中:

Representation entity = request.getEntity();
StringRepresentation sEntity = new StringRepresentation(entity);
request.setEntity(sEntity);

JsonRepresentation jsonrep = new JsonRepresentation(sEntity);

然后,字符串表示将自动提供给您的服务器资源方法...

希望它可以帮助你。蒂埃里

于 2013-03-14T14:14:15.150 回答