我使用 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/