java - Rest API 方法正在返回值,但仍然收到 500 错误

标签 java jquery ajax rest jersey

我正在开发 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/

相关文章:

javascript - 激活后保持可折叠图标显示

javascript - Vue/Webpack/Typescript - 如何使用 jQuery 插件

asp.net - jquery ajax发布问题在警报中获取空值

php - Ajax 关联数组

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

java - 我已经尝试了所有可能的方法来使用 Webdriver 定位元素,但出现错误 "Unable to locate Element"

java - Spring AOP 切入点

java - Android 的 Java 实现到底有多兼容?

javascript - stopPropagation() 的行为更令人困惑

php - 在 AJAX 加载的 DIV 中运行 javascript