【发布时间】:2012-10-27 17:37:21
【问题描述】:
我有一个 REST 的 Jersey 实现,它提供来自 Tomcat (Server1) 的 API
@POST
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Users create(Users users) {
return dao.create(users);
}
请求是从 Apache (Server2) 的 jquery 客户端发布的
$.ajax({
type: 'POST',
contentType: 'application/json',
url: rootURL,
dataType: "json",
data: formToJSON(),
success: function(data, textStatus, jqXHR){
alert('user created successfully');
},
error: function(jqXHR, textStatus, errorThrown){
alert('user error: ' + textStatus);
}
});
这个 jquery 实际上是向服务器提交请求,但是服务器/API 无法识别这个请求。此外,所有其他请求,如 @Formparam /@Header 等使用 POST /GET 都在工作
如果我使用 REST 客户端使用相同的东西,它正在工作,任何人都可以帮助我 使用请求对象类型为 POST 排序此问题。
【问题讨论】:
-
如果它产生“application/json”,函数不应该返回一个字符串,而不是一个用户吗?另外,你有@Path 注解吗?
-
@EricB 用户使用“@XmlRootElement”注释,还添加了“@Path”
-
Users类的外观如何?你能告诉我们发送到服务器的 JSON 吗?服务器如何响应您的请求? -
类用户是这样的
@XmlRootElement public class Users{ private String firstName; private String middleName; public Users(String firstName, String middleName){ this.firstName = firstName; this.middleName = middleName } //TODO getter and Setter }JSON是这样的{"firstName":"First Name","middleName":"Middle"} -
请更新您的问题(将代码作为评论发布不是很有帮助)。你检查过电线上的具体内容吗? Tomcat 作为响应返回了什么? 404? 500?服务器日志中是否存在某些内容?
标签: jquery json spring rest jersey