当前位置: 首页 > 知识库问答 >
问题:

当从restcontroller引发异常时,gradle构建的intellij和jar会产生不同的结果

戚兴思
2023-03-14
package refill.station.controller;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @PostMapping("/test")
    public void test() {
        throw new NullPointerException("test Exception");
    }
}

我们可以看到相应的消息。此消息用作axios的警报消息!!

消息为空,错误是内部服务器错误!

共有1个答案

督飞羽
2023-03-14

为了获得唯一的响应消息,然后返回jax响应对象,而不是测试方法中的Void。这是一个示例代码。

import java.io.Serializable;
import javax.ws.rs.core.Response;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    @PostMapping("/test")
    public Response test() {
        MyResponse response = new MyResponse();
        try {
            processReqest();
        } catch (Exception ex) {
            response.setResponseText(ex.getMessage());
            return Response.ok(response).status(200).build();
        }
        return Response.ok(response).status(200).build();
    }

    private void processReqest() {
        throw new NullPointerException("test Exception");       
    }
}

class MyResponse implements Serializable{
    
    private static final long serialVersionUID = -3015657137609271996L;
    private String responseText;
    public String getResponseText() {
        return responseText;
    }
    public void setResponseText(String responseText) {
        this.responseText = responseText;
    }
}
 类似资料:
  • 我刚刚在Java11以IntelliJ Maven项目的形式开发了我的第一个JavaFX应用程序,并达到了它按预期工作的地步。到目前为止,我只使用Maven来处理依赖关系,使用IntelliJ来编译和运行我的项目。 然后我继续尝试以JAR文件的形式打包项目,发现由于Java11不再包含JavaFX,JAR生成变得更加困难(是的,我知道,我应该早点检查这个)。在阅读JavaFX 11的文档时,我决定

  • 我目前正在使用Ant从JUnit测试套件生成html报告,但遇到了一些非常奇怪的问题。当我在Eclipse中运行我的测试套件时,我获得了30次成功、0次错误和0次失败。当我将测试套件作为Ant目标运行时(同样,在Eclipse中),我获得了7次成功、10次错误和13次失败,以及不同的输出。为了回答这个问题,我将只关注一个测试用例。 Ant目标: 有问题的JUnit测试: 测试中的分类方法: 在Ec

  • 我正在尝试将我的项目从gradle构建转换为maven构建。我可以从maven生成war文件,但是maven中的一些依赖项JAR的版本与Gradle的版本不同。 问题1:为什么上述罐子的版本不一样? 问题2:为什么使用Gradle构建的战争有“cglib-2.2.1-v20090111.jar”,而使用Maven构建的战争却没有?

  • 为什么用于取消引用传递给printf的指针的类型会影响输出,即使类型大小相同: 输出: 我希望最后两行都正确打印0x3ff0000000000000,即IEEE754双浮点中1.0的表示形式。

  • 当尝试在具有各种子项目的多模块项目中从ant构建文件导入运行任务时,我得到了并发修改异常。 例外情况并没有说太多,除了这个*出了什么问题:java.util。ConcurrentModificationException(无错误消息) 我有同样的身材。gradle文件在其他子项目中,但我能够执行gradle的任务,没有任何问题 我的gradle文件用于ant导入 请帮我解决这个问题。