java - 收到错误 500 但返回 ok()

标签 java ajax playframework-2.0 internal-server-error

我正在开发一个 MVC 项目,使用 Java 和 Play 框架,遇到了一个问题。这是代码中有趣的部分(我稍微清理了一下):

Controller :

public Result acceptInputSimulationPension() {
    if (request().getHeader(CONTENT_TYPE) == null) {
        return badRequest("error: no content type");
    }
    if (!request().getHeader(CONTENT_TYPE).contains("multipart/form-data")) {
        return badRequest("Error: wrong content type. Expected multipart/form-data, got " + CONTENT_TYPE);
    }

    Form<String> form = Form.form(String.class).bindFromRequest();
    Pension project = new Pension();

    project.setMaxloss(form.field("maxloss").value());
    // setting some other parameters...
    project.setIdUser(Application.user.getId());

    if (project.getMaxloss() == 0) {
        return badRequest("error: maxloss datalist malformed");
    }

    double[] flows = Application.getPensionFlows(project, (int) project.computeContributionYears(), (int) project.computeAdditionalIncomeNeeded());
    Savings savings = new Savings((int) project.getInitialContribution(), flows, (int) project.computeContributionYears() * 12);
    Ebean.save(project);

    session("init/pension/maxloss"+project.getId(), form.field("maxloss").value());
    // setting some other session variables...

    ObjectNode result = Application.jsonEncoder.encodeFinalSimulPension(project, savings.getSavings(), flows, false, true);
    result.put("id", project.getId());
    System.out.println("hello?");
    return ok("test");
}

我返回 ok("test") 以确保问题不是来自结果变量。

还有 AJAX:

function  ajaxPOST_simulation(data, id, formName) {
$.ajax({
    type: 'POST',
    url: "/input/simulation/"+formName,
    processData: false,
    contentType: false,
    data: data,
    success: function (resp) {
        alert("ok");
    },
    error: function (resp) {
        alert("error: " + resp.responseText);
    }
});
}

System.out.println("hello") 成功显示在我的终端上,所以我想我返回 ok("test"),但我收到此错误作为警报:

error:
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Execution exception</title>
        <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSU... etc.

这怎么可能? 预先感谢您!

编辑: 我刚刚发现 HTML 代码对应于 NullPointerException ,但我仍然不知道这里什么可能是 NULL。甚至结果变量也不为 NULL 并且看起来没问题...

最佳答案

事实证明问题不是来自 json,也不是来自 ajax:我只是想这样做:

session("init/pension/maxloss"+project.getId(), form.field("maxloss").value());

有一个不再存在的字段。 我认为这种错误会抛出异常并在程序到达函数末尾之前停止程序。

关于java - 收到错误 500 但返回 ok(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37341165/

相关文章:

java - 将作业从 eclipse 提交到 amazon EMR 上正在运行的集群

java - 如何使用 Java 发送 HTTP GET 并使用用 C++ 编写的 CGI 应用程序打印 QUERY_STRING 环境变量?

javascript - 如何在 JavaScript 中发出返回虚假响应的请求?

javascript - AJAX删除工作但不重新加载页面

playframework - sbt:子项目的动态聚合

java - JAXB xsd 如何像引用一样使用数组成员

java - SimpleDateFormat 产生错误的结果

javascript - jQuery 自动完成到 jQuery UI 自动完成迁移(jQuery 1.2.x 到 2.x)

java - Play 2 的多个全局设置

json - 玩转Scala 2.3,JSON Array转Sequence