设置我们 glassfish 服务器的人失去了联系。我们拥有它,以便它将以 json 和 xml 格式输出。目前它以 json 格式输出,但我需要 xml。如何将其更改为 xml?
问问题
400 次
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 回答