我是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方法都正常工作。
任何人都可以帮助我致电服务吗?因为我没有得到我错的地方,所以欢迎任何建议。 提前谢谢。