1

设置我们 glassfish 服务器的人失去了联系。我们拥有它,以便它将以 json 和 xml 格式输出。目前它以 json 格式输出,但我需要 xml。如何将其更改为 xml?

4

2 回答 2

1

由于我提到的客户端标头问题最终成为解决方案,因此我将继续在此处为可能遇到它的任何其他人输入解决方案。

在这种情况下,调用服务器的客户端需要指定 HTTP Accept 标头以发送application/xml. 许多 RESTful 服务器实现使用此标头来确定如何格式化响应。

于 2013-07-19T20:24:37.473 回答
0

我假设您正在使用一些 REST 框架。您的某些服务器应用程序类可能如下所示:

@GET
@Path("/somepath")
@Produces(MediaType.APPLICATION_JSON)
public SomeClass getSomething();

@Produces 注释声明可以将哪种媒体类型传递给客户端。

您必须将其更改为:

@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})

或这个

@Produces({"application/json", "application/xml"}))

如果该类SomeClass被注释为@XmlRootElement ,这应该可以工作。如果该方法返回一些像 String 这样的“标准”类,你可以这样做:

  // This method is called if XML is requested
  @GET
  @Produces(MediaType.TEXT_XML)
  public String getXML() {
    return "<?xml version=\"1.0\"?>" + "<hello> Hello" + "</hello>";
  }

  // This method is called if JSON is requested
  @GET
  @Produces(MediaType.APPLICATION_JSON)
  public String getJSON() {
    return "{ 'hello': 'Hello' }";
  }
于 2013-07-19T10:11:29.507 回答