设置我们的glassfish服务器的人没有联系。我们有它,它将以json和xml格式输出。目前它在json输出,但我需要xml。如何将其更改为xml?
答案 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' }";
}