quarkus - 如何使用 Quarkus 中的 Jackson 将 JAX-RS 中的对象作为 YAML 返回?

标签 quarkus

我使用 https://code.quarkus.io 创建了一个 Quarkus 项目(使用 RESTEasy Jackson 扩展),一个 Greeting 类定义为:

public class Greeting {

    private final String message;

    public Greeting(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }
}

还有一个 JAX-RS 端点将其作为 YAML 返回,所以我编写了以下代码:

@Path("/greeting")
public class GreetingResource {

    @GET
    @Produces("application/yaml")
    public Greeting hello() {
        return new Greeting("hello");
    }

}

我还在我的 Quarkus 项目中添加了以下依赖项以返回 YAML:

    <dependency>
      <groupId>com.fasterxml.jackson.jaxrs</groupId>
      <artifactId>jackson-jaxrs-yaml-provider</artifactId>
    </dependency>

然而,当我到达终点时,会显示以下错误:

2020-05-22 10:55:55,693 ERROR [org.jbo.res.res.i18n] (executor-thread-1) RESTEASY002010: Failed to execute: javax.ws.rs.NotSupportedException: RESTEASY003200: Could not find message body reader for type: class org.acme.sample.Greeting of content type: application/yaml; charset=ISO-8859-1

解决此问题的推荐方法是什么?

最佳答案

除了在您的 pom.xml 中添加依赖项之外,请确保还将以下内容添加到您的 application.properties:

quarkus.index-dependency.yaml.group-id=com.fasterxml.jackson.jaxrs
quarkus.index-dependency.yaml.artifact-id=jackson-jaxrs-yaml-provider

关于quarkus - 如何使用 Quarkus 中的 Jackson 将 JAX-RS 中的对象作为 YAML 返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61956772/

相关文章:

unit-testing - 无法使用 OIDC Auth 服务器进行单元测试?

java - 如何使用Quarkus指定要在application.properties中使用的基本docker镜像

aws-lambda - 公开/部署多个处理程序(quarkus-lambda)

properties-file - 如何覆盖 Quarkus 中的属性?

java - 如何在 Quarkus Tuple.of() 方法中允许超过 6 个参数?

cors - quarkus:受CORS政策封锁

kotlin - 如何为 Kotlin 数据类中的属性设置 OpenAPI 类型/架构

hazelcast - 在 Quarkus 中配置集群 Vertx Eventbus 的问题

java - 如何更改 Azure Functions 中的日志级别

java - 如何在 Quarkus 中启用 Jaeger JDBC 跟踪