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

如何返回自定义错误响应时,没有找到项目

王英彦
2023-03-14

找不到项目时尝试发送自定义错误消息ifNotNullcase correct生成所需的响应。但是ifNull没有生成所需的响应(响应总是空的,状态代码为200)

作者服务。JAVA

public Uni<Author> findByName(String name) {
    return authorRepo.findByName(name);
}

Resource.java

@GET
@Path("/{name}")
public Uni<Response> get(@PathParam("name") String name) {
    return authorService.findByName(name)
            .onItem().ifNotNull().transform(t -> new ResponseBodyDTO("success", true, t))
            .onItem().transform(t -> Response.ok(t).build())
            .onItem().ifNull().switchTo(() -> Uni.createFrom().item(new ResponseBodyDTO("fail", false, null))
                    .onItem().transform(t -> Response.status(Response.Status.NOT_FOUND).entity(t).build()));
}

共有1个答案

慕皓君
2023-03-14

使用以下命令

@GET
@Path("/{name}")
public Uni<Response> get(@PathParam("name") String name) {
    return authorService.findByName(name)
            .onItem().ifNotNull().transform(t -> Response.ok(new ResponseBodyDTO("success", true, t)).build())
            .onItem().ifNull().continueWith(Response.status(Response.Status.NOT_FOUND).entity(new ResponseBodyDTO("fail", false, null)).build())
}
 类似资料:
  • Apache可以让网站管理员自己自定义对一些错误和问题的响应。 自定义的响应可以定义为当服务器检测到错误或问题时才被激活。 如果一个脚本崩溃并产生"500 Server Error"响应,那么这个响应可以被更友好的提示替换或者干脆用重定向语句跳到其他的URL(本地的或外部的)。 行为 老式的行为 Apache1.3 会响应一些对于用户没有任何意义的错误或问题信息,而且不会将产生这些错误的原因写入日

  • 这里有一些代码来表明我的意图(Meter是一个域类): 我想出了几种处理这个问题的方法。首先,有可能创建类似 然后使用异常处理程序来呈现自定义的errorpage(可能包含到仪表列表的链接或任何合适的内容)。 但是使用这个解决方案,我必须重复许多控制器方法的前5行(如edit、delete)。 有没有一种优雅的方法来防止重复这些行很多次?

  • 在Spring MVC@RequestMapping注释中,我返回JSP页面名称作为结果。这将返回HTTP状态代码200OK。如何将此状态代码更改为创建的201? @ResponseStatus不起作用。另外,HttpServletResponse也不能工作,因为我只需要返回自定义JSP页面。

  • 问题内容: 我已经按照以下Flask-RESTful文档定义了自定义响应格式。 我有以下资源类。 我希望函数返回类型,函数返回默认值。 我该怎么做呢?关于这一点,文档不是很清楚。 问题答案: 使用哪种表示方式取决于request,标头类型。 的请求通过使用你的函数来响应。 如果你需要API方法中的特定响应类型,则必须使用返回“预烘焙”响应对象:

  • 我正在努力裁剪javax。验证。ConstraintValidator和javax。验证。根据我的需要限制ValidatorContext。我从格式错误的请求正文收到的响应消息始终采用以下形状: <代码> 此消息也以500而不是400错误请求的形式返回。我无法获得工作到解决方案来执行以下操作: 仅包括<代码> 我有以下代码: 向上面的代码发送格式错误的有效负载将导致如下消息: 我希望能够收到以下信