使用 JBoss 返回两种不同的 MIME 类型时出现 RESTEASY002142 警告

RESTEASY002142 warnings when returning two different MIME types with JBoss

我正在尝试将 JBoss 服务器从 RESTEasy 3.0.10 升级到 3.1.0。我们的一项资源允许 return 纯文本或 XML 数据。它工作正常,但会产生警告消息 "RESTEASY002142: Multiple resource methods match request".

代码基本上是这样的:

@Path(value = "info")
public interface InfoResource {

@GET
@Produces("text/plain")
public InfoObject getInfo();

@GET
@Produces("text/xml")
public InfoObject getInfoXML();
}

每当服务器收到对 "info" 资源的请求并且未指定带有 "Accept" header 的首选 return 类型时,就会出现警告消息。这段代码有什么问题吗?有什么办法可以去掉暖心消息吗?

请注意,此 documentation 中 JBoss 中的 "Library" class 示例会产生相同的错误消息。

我可以通过将两种可能的 return 类型放入 "Produces" 注释中来消除警告消息。

A MessageBodyWriter 会将 InfoObject 转换为所需的格式。

@Path(value = "info")
public interface InfoResource {

  @GET
  @Produces({"text/plain", "text/xml"})
  public InfoObject getInfo();
}