使用Tomee1.7.1从Jquery调用REST服务

时间:2014-12-09 07:12:39

标签: java jquery rest

我是Web Services的新手。我正在做一个演示应用程序,我从jquery点击按钮调用REST服务。但它没有打电话。我搜索了很多但无奈。我正在使用Apache Tomee1.7.1。 在这里,我写了两个类: 1)UserService - >它扩展了javax.ws.rs.core.Application类。

@ApplicationPath("App")
public class UserService extends Application{

    @Override
    public Set<Class<?>> getClasses() {
        System.out.println("in getclasses method...");
        Set<Class<?>> set = new HashSet<Class<?>>();
        set.add(MyService.class);
        set.add(User.class);
        set.add(UserDao.class);
        return set;
    }


}

2)MyService - &gt;其中包含REST服务

@Path("users")
public class MyService {

    UserDao uDao = new UserDao();
    User u = null;

    @Path("save")
    @POST
    @Consumes({MediaType.APPLICATION_JSON})
    @Produces({MediaType.APPLICATION_JSON})
    public JSONObject saveUser(User u){
        System.out.println("in save");
        if(u != null){
            JSONObject juser = new JSONObject();
            User user = uDao.saveUser(u);
            /*juser.put("accnumber", user.getAccNumber());
            juser.put("username", user.getUserName());
            juser.put("bankname", user.getBankName());
            juser.put("depositamt", user.getAmount());
            juser.put("regdate", user.getDate());*/

            juser.put("user", user);
            return juser;
        }
        else
            return null;

    }

}

此服务应调用java方法,该方法将用户表单数据保存到数据库。

3)在jquery中调用如下服务:

 $("#btnSave").click(function(){

         alert("save clicked...");
         $.ajax({

             type: "POST",
             url : "http://localhost:8080/App/users/save", 
            datatype : "json",
            contenttype: "application/json",
            Accept : "application/json",
            data : formToJson(),
         success : function(data){
             alert("data :"+data);
             //alert("user added!");
         },
         error : function(data){
            //alert("data="+data);
             alert("failed! "+e);
         }

         });
    });

在调用url时,App是在@ApplicationPath中指定的名称,用户在@Path中指定了名称,并在@Path中保存为REST方法。

当我执行demo时,一切正常但是当我单击“保存”按钮时,我猜想没有调用Rest方法,所有jquery alert n方法都正常工作。

任何人都可以帮助我致电服务吗?因为我没有得到我错的地方,所以欢迎任何建议。 提前谢谢。

0 个答案:

没有答案