我有一个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数据。
请解释我是否做错了什么。
谢谢
答案 0 :(得分:0)
原因是因为我使用的是旧版本的apache cxf bundle。 当我将版本更改为:
tabulate()
问题已解决。
此问题也正式提交给apache cxf。 链接在这里: https://issues.apache.org/jira/browse/CXF-5243