Java RESTWebServices中的错误消息
我使用AJAX从JSP调用RESTWebServices。您能告诉我从REST Web服务向JSP发送自定义错误消息的最佳方法吗?考虑使用HTTP响应代码和(可能)json响应体来提供任何所需信息,以便客户端应用程序能够做出相应的反应。如果您使用的是JAX-RS REST Web服务,您可以配置SpringJava RESTWebServices中的错误消息,java,rest,jakarta-ee,Java,Rest,Jakarta Ee,我使用AJAX从JSP调用RESTWebServices。您能告诉我从REST Web服务向JSP发送自定义错误消息的最佳方法吗?考虑使用HTTP响应代码和(可能)json响应体来提供任何所需信息,以便客户端应用程序能够做出相应的反应。如果您使用的是JAX-RS REST Web服务,您可以配置Spring@Controller。您的方法应该生成application/json并返回Response对象,如下例所示: @GET @Path("/get/{id}") @Produces(Media
@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);
});
考虑使用。您可以为它提供错误代码(也可以是自定义代码)和响应的主体。如果您有一个复杂的结构来显示错误,您可以使用JSON格式,但我建议只使用一条errormessage(例如,在一个错误的请求中,请求的哪一部分是错误的)。有两种方法。 1.您可以查看从web服务收到的响应状态。以2**开头的状态为成功响应(例如:200201),以4**或5**开头的状态为错误
@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
公共类GenericeExceptionMapper实现ExceptionMapper{
@凌驾
公众响应(可丢弃arg0){
返回Response.status(status.INTERNAL\u SERVER\u错误)
.entity(“自定义异常:检索数据时出错”)
.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();
}
}
@Provider
公共类GenericeExceptionMapper实现ExceptionMapper{
@凌驾
公众响应(可丢弃arg0){
返回Response.status(status.INTERNAL\u SERVER\u错误)
.entity(“自定义异常:检索数据时出错”)
.build();
}
}
没有任何代码,我们如何判断解决方案?答案取决于您使用的techstack 1)我问的是异常映射器,使用异常映射器是正确的方法吗?1)我问的是异常映射器,使用异常映射器是正确的方法吗,当操作不受您控制时(如对象类型、权限、语法),会引发异常。但是对于REST服务,您需要手动验证输入数据并返回“警告”消息,如错误的数字、字符串、值。。。我只使用异常映射器登录请求期间发生的服务器错误…1)我在询问异常映射器,使用异常映射器是正确的方法吗?