apache cxf ContainerRequestContext返回null

时间:2017-04-27 15:26:57

标签: java json web-services jax-rs cxf

我有一个AuthorizationFilter类,它实现了ContainerRequestFilter。

@Provider
@Authorization
public class AuthorizationFilter implements ContainerRequestFilter {

@Override
public void filter(ContainerRequestContext requestContext) throws 
IOException {
    // TODO Auto-generated method stub
    InputStream entityIn = requestContext.getEntityStream();

  }

}

应在此方法之前调用此过滤器:

@Path("/delete/volume")
@Authorization
public Response deleteVolumeForTechAccount(VolumeRequestJSON volumeForDeletion) {
    log.debug("Delete volume was called ");

    VolumeOperation operator = getVolumeOperator();

    try {
        log.debug("Deleting volume with id: " + volumeForDeletion.getVolumeId());

        operator.deleteVolume(volumeForDeletion.getVolumeId());

        log.debug("Volume with id: " + volumeForDeletion.getVolumeId() + "was deleted");

        return Response.ok().build();
    } catch (OperationException ex) {
        log.error("OperationException occured durring deletion of volume: " + volumeForDeletion.getVolumeId(), ex);

        return buildResponseWithHeader(HttpURLConnection.HTTP_INTERNAL_ERROR, ex.getMessage());
    }

}

我用以下JSON数据调用其余的数据:

{ “volumeId”: “测试”}

该方法成功执行但我打电话时:

requestContext.getEntityStream()在它返回的过滤器中始终为null。

我想阅读过滤器中的json数据。

请解释我是否做错了什么。

谢谢

1 个答案:

答案 0 :(得分:0)

原因是因为我使用的是旧版本的apache cxf bundle。 当我将版本更改为:

tabulate()

问题已解决。

此问题也正式提交给apache cxf。 链接在这里: https://issues.apache.org/jira/browse/CXF-5243