我正在使用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错误,表明服务器端出现了问题?
有什么建议吗? 提前谢谢。
答案 0 :(得分:1)
500表示内部服务器错误,通常应该伴有日志消息,甚至在某些情况下会在发送给客户端的消息体中嵌入异常。
最有可能发生的事情是您的方法已处理并返回List<TreeViewModel>
,但无法将其序列化以便发送。
例如,某些序列化程序不喜欢使用原始集合。您需要拥有自己的对象,然后将列表放在其中。找到问题的实际原因的唯一方法是找到该异常,看看它告诉你什么。