我使用AJAX從JSP調用REST webservices。你能告訴我從REST webservice發送自定義錯誤消息到JSP的最佳方式嗎?REST webservices中的錯誤消息
回答
考慮使用HTTP響應代碼與(可能的)JSON響應機構提供任何所需的信息,所以客戶端應用程序可以相應地做出反應。
1)我問異常映射器techstack中,使用異常映射是正確的做法? –
如果您使用的JAX-RS REST Web服務,您可以配置Spring @Controller
。你的方法應該產生application/json
在這個例子中返回Response
對象,如:
@GET
@Path("/get/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Response getUserById(@PathParam("id") String userId) {
// Here your logic
Foo foo = new Foo();
foo.setMsg("Bad Request");
foo.setData("User " + userId + " not found")
return Response.status(400).entity(foo).build();
}
而且從AJAX,可以捕獲錯誤消息
// Get user details
$.getJSON(encodeURI("./rest/user/get/" + userId), function(data) {
// Some logic on success
// Fail
}).fail(function(jqxhr) {
console.log(jqxhr.responseJSON.msg);
});
1)我在問關於異常映射器,是否使用異常映射器是正確的方法? –
那麼,當動作不受你控制時(例如對象類型,權限,語法),將使用異常來引發異常。但對於REST服務,您需要手動驗證輸入數據並返回「警告」信息,如錯誤的數字,字符串值...我使用異常映射只登錄請求過程中出現服務器錯誤...... – Valijon
考慮使用WebapplicationException。你可以給它Errorcode(也是自定義的)和一個響應體。如果你有一個複雜的結構來顯示你的錯誤,你可以使用JSON格式,但我會建議使用一個錯誤消息(例如在請求不好的情況下,請求的哪部分是壞的)。
1)I我問關於異常映射器,是否使用異常映射器是正確的方法? –
有一對夫婦的方式。 1.您可以查看從Web服務收到的響應狀態。以2 **開頭的狀態是成功響應(例如200,201),以4 **或5 **開頭的狀態是錯誤。
但是,處理和跟蹤異常的最佳方式是使用ExceptionMapper。您可以編寫自己的類,它實現ExceptionMapper象下面這樣:
@Provider public class GenericExceptionMapper implements ExceptionMapper<Throwable> { @Override public Response toResponse(Throwable arg0) { return Response.status(Status.INTERNAL_SERVER_ERROR) .entity("Custom Exception: Error retrieving data") .build(); } }
您可以編寫自己的自定義異常像下面或者拋出異常毯像下面。但上述方法是首選。
@Provider
public class GenericExceptionMapper implements ExceptionMapper<Throwable> {
@Override
public Response toResponse(Throwable arg0) {
return Response.status(Status.INTERNAL_SERVER_ERROR)
.entity("Custom Exception: Error retrieving data")
.build();
}
}
- 1. soap webservices - 返回錯誤消息?
- 2. WEBSERVICES錯誤dev.virtualearth.net/webservices/geocode
- 3. 使用Spring REST的URL中的錯誤消息
- 4. Xcode中的webservices 405錯誤
- 5. MATLAB中的錯誤消息
- 6. Informix中的錯誤消息
- 7. CGFloat中的錯誤消息
- 8. Android Web服務使用Rest - SOAP消息中的錯誤
- 9. 的onClick WEBSERVICES錯誤
- 10. 錯誤消息
- 11. 錯誤消息
- 12. 錯誤消息
- 13. 錯誤消息
- 14. 錯誤消息
- 15. 錯誤消息
- 16. 錯誤消息
- 17. 錯誤消息
- 18. 錯誤消息
- 19. Sharepoint 2010 REST webservices
- 20. REST webServices for android
- 21. 未在REST中收到自定義錯誤消息
- 22. Jax-RS:從REST調用中獲取錯誤消息?
- 23. 如何在REST API輸出中禁用錯誤消息
- 24. 獲取JSON.stringify錯誤消息
- 25. Netsuite Webservices(Python)錯誤
- 26. Fedex Webservices XML錯誤
- 27. 錯誤消息NSData
- 28. Sqlite3錯誤消息
- 29. 消息框錯誤
- 30. Sudo錯誤消息
我們怎麼能說沒有任何代碼的解決方案? – Manwal
答案取決於你使用 – BadK