从ContainerRequestContext获取InputStream时,由于输入结束,没有内容可以映射到Object

时间:2018-10-01 20:29:43

标签: java rest filter jax-rs

当我在面临以下异常的代码中从InputStream获得ContainerRequestContext

  

原因:java.io.EOFException:由于输入结束,没有内容可以映射到Object。

请求:

{
    "header": {
    "userId": "TEST",
    "mode": "NONE"
    },
    "entityList": [
        {
            "id": 424260,
            "status": "test"
        }
    ]
}

java代码是:

@Provider
public class RestHeaderFilter implements ContainerRequestFilter {

    private static final Logger LOG = LogManager.getLogger(RestHeaderFilter.class);

    @SuppressWarnings({ "resource", "unchecked" })
    @Override
    public void filter(ContainerRequestContext request) throws IOException {
        InputStream inputStream = null;
        try {
            inputStream = request.getEntityStream();
        } catch (Exception exp) {
            exp.printStackTrace();
        } finally {
            inputStream.close();
        }
    }
}

我想验证标题信息,我正在通过以下方式致电服务

@POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/submitUser")
    public ResponseOb submitUser(UserDtl req) {
        ResponseOb resp = new ResponseOb();
        return resp;
    }

0 个答案:

没有答案