java - 如何使用 REST 服务处理客户端-服务器应用程序中的错误?

标签 java jquery ajax rest exception

问题

1) 使用 REST 服务时如何处理客户端-服务器应用程序中的错误?有人可以用示例代码帮助我什么是处理下面代码中错误消息的最佳方法。例如,如何在创建服务的情况下捕获客户端和/或服务器端的异常?

2) 如何在错误和成功的情况下将用户转到不同的页面?


客户

 $('#btnSignup').click(function(){ 
            var user = {"id": 10, "firstName": $('#firstName').val(), "lastName":       $('#lastName').val(), "age": 69, "freeText": "55555", "weight": 55};

            $.ajax({
            type: "POST",
            contentType: "application/json",
            url: "http://localhost:8080/test/webresources/entity.user/",
            dataType: "json",
            data: JSON.stringify(user),

            success: function(response) {
               $('#myModal').modal('hide');
            },
            error: function(data) {
                alert('addUser error: ');
            }
        });

    }); 

休息服务

@Stateless
@Path("entity.user")

public class UsersFacadeREST extends AbstractFacade<Users> {
@PersistenceContext(unitName = "testPU")
private EntityManager em;

public UsersFacadeREST() {
    super(Users.class);
}

@POST
@Override
@Consumes({"application/xml", "application/json"})
public void create(Users entity) {
    super.create(entity);
}

最佳答案

只是我的 2 美分 那么你可以定义一个 Result Object ,你可以在每次 rest 调用后返回它

Class Result{
   private String statusCode;
   private String statusDescription;

}

在 bean 里

@POST
@Override
@Consumes({"application/xml", "application/json"})
@Produces({ "application/json"})
public Result create(Users entity) {
  Result result = new Result();
  try{
    super.create(entity);
   result.setStatus("200");
   result.setStatusDescriptions("Success");
   }catch(Exception) {
        result.setStatus("500");
        result.setStatusDescriptions("Fail");
   }

  return result;  // Return this as Json 
}

您稍后可以使用 jquery 解析 HTML 中的响应并根据“状态”处理流程

关于java - 如何使用 REST 服务处理客户端-服务器应用程序中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15105968/

相关文章:

javascript - jQuery:遍历 JSON 文档

java - Play Framework : "Action not found" error for GET route after AJAX call to PUT/POST

java - 如何将属性文件放置在 Eclipse 中类路径中 .jar 前面的目录中?

java - 线程 "main"java.net.MalformedURLException : no protocol error while finding broken links in a page using Selenium and Java 中出现异常

javascript - 将 Jquery 转换为 javascript (find())

javascript - 在数字和字符之间插入一个空格

jquery - 如何解决请求的资源上不存在 'Access-Control-Allow-Origin' header

Ajax 驱动的时间线风格博客(在 Drupal 中)

java - 使用 Maven 运行常规测试

java - Java 类型转换时出现编译错误