apache cxf ContainerRequestContext 总是返回 null

apache cxf ContainerRequestContext is returning always null

我有一个 class 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":"test"}

方法执行成功但是调用时:

requestContext.getEntityStream() 在过滤器中 returns 始终为空。

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

如果我做错了什么请解释。

谢谢

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

<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-bundle</artifactId>
<version>2.7.18</version>
</dependency>

问题已解决。

另外这个issue已经正式提交给apache cxf了。 这是 link: https://issues.apache.org/jira/browse/CXF-5243