我正在开发 Java Jersey REST API 和使用此 API 的网站。
这是我的服务器端方法
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<TreeViewModel> getTreeList() {
User user = User.getByCredentials("team", "team");
List<TreeViewModel> list = user.getTreeViewModels();
return list;
}
这是我的 JavaScript 请求
function requestTrees() {
$.ajax({
type: "GET",
url: window.api + "tree",
dataType: 'json',
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", make_base_auth('team', 'team'));
},
success: function(data) {
console.log('suc');
},
complete: function(jqxhr, txt_status) {
console.log('com');
},
failed: function(data) {
console.log('fai');
}
});
}
如果我调试服务器,该方法将被调用并返回列表。但在客户端我收到 500 错误,这表明服务器端出现问题?
有什么建议吗? 提前致谢。
最佳答案
500 表示服务器内部错误,通常应伴有日志消息,甚至在某些情况下应伴有发送到客户端的消息正文中嵌入的异常。
最有可能发生的情况是您的方法已处理并返回 List<TreeViewModel>
但随后无法序列化以进行发送。
例如,某些序列化程序不喜欢使用原始集合。您需要拥有自己的对象,然后将列表放入其中。找到问题实际原因的唯一方法是找到该异常并查看它告诉您什么。
关于java - Rest API 方法正在返回值,但仍然收到 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21975504/