如何将Glassfish从JSON输出切换为XML

时间:2013-07-18 23:03:18

标签: xml json glassfish

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

2 个答案:

答案 0 :(得分:1)

由于我提到的客户端标题问题最终成为了解决方案,因此我将继续为其他可能遇到此问题的人提供解决方案。

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

答案 1 :(得分:0)

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

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

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

您必须将其更改为:

@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' }";
  }