Ajax发布到RESTful Web服务

时间:2013-05-17 04:43:51

标签: java ajax rest

我在使用Java的RESTful Web服务的Ajax帖子中遇到了问题。该项目使用单个servlet mvc模型,Ajax发布数据作为JSON发送到Web服务。发生的具体问题是我无法从Web服务端的HttpServletRequest对象中提取数据。 POST直接进入Web服务,我尝试使用以下内容提取数据:

@Path(Ajax)
public AjaxResource(){
@Context
HttpServletRequest request;

@POST
@Produces("application/json")
@Consumes("application/json")
public Response postMethod(){

BufferedReader reader = request.getReader();
// additional code
}
}

我在请求的getReader()调用上收到IllegalStateException;根据我的理解,输入流/阅读器只能被调用一次。我不确定这是否是由于servlet中的doPost方法正在执行request.getParameter调用,因为它似乎在我之前在这个Web服务之前访问了servlet。除了在servlet中实现HttpServletRequestWrapper之外,还有其他方法来检索这些数据吗?

1 个答案:

答案 0 :(得分:0)

您应该使用@Context HttpServletRequest request作为资源方法的参数。 所以它应该是这样的:

public Response postMethod(@Context HttpServletRequest request){

    // rest of the code

}