1

我在使用 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 之外,还有其他方法可以检索这些数据吗?

4

1 回答 1

0

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

public Response postMethod(@Context HttpServletRequest request){

    // rest of the code

}
于 2013-05-17T16:49:57.587 回答