2013-05-17 71 views
1

我遇到了Ajax發佈到Java中的REST風格的Web服務的問題。該項目使用單個servlet mvc模型,並將Ajax發佈數據作爲JSON發送到Web服務。發生的特定問題是我無法從Web服務端的HttpServletRequest對象中提取數據。該POST直接進入Web服務,我試圖用下面拉出來的數據:Ajax發佈到REST風格的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之外,還有其他方法可以檢索這些數據嗎?

+0

什麼是堆棧跟蹤?什麼是「請求」?它沒有任何聲明。你使用了什麼框架(這些註釋不是JRE的一部分)?這裏的人都願意幫忙,但是他們無法理解。 –

+0

對我來說看起來像Java6。另外聲明的請求是HttpServletRequest。儘管不知道答案;-) –

+0

我們在公司內部使用專有框架。 – user2392439

回答

0

您應該使用@Context HttpServletRequest request作爲資源方法的參數。 所以它應該是這樣的:

public Response postMethod(@Context HttpServletRequest request){ 

    // rest of the code 

}