REST的MediaType

时间:2010-06-03 08:41:24

标签: java rest jax-rs

我是REST网络服务的初学者。

我写了一个REST程序来显示HTML或XML。 @Path注释的值为@Path("{typeDocument}")。 GET有两种方法:

@GET
@Produces(MediaType.TEXT_XML)
public String getXml(@PathParam("typeDocument") String typeDocument)

显示XML文件, 和

@GET
@Produces(MediaType.TEXT_HTML)
public String getHtml(@PathParam("typeDocument") String typeDocument)

显示HTML。

当网址为

时,浏览器Firefox总是会占用getHtml()

http://localhost:8080/sources/htmlhttp://localhost:8080/sources/xml

但是IE总是会占用getXml()

如何在不同的浏览器中执行URL定义的正确方法?

1 个答案:

答案 0 :(得分:1)

尝试使用MediaType.APPLICATION_XML而不是TEXT_XML。

话虽这么说,这不是JAX-RS的最佳用途 - 特别是如果您使用RestEASY或任何其他具有JAXB支持的实现。

@GET
@Produces(MediaType.APPLICATION_XML)
@Path("/{typeDocument}")
public MyObject getXml(@PathParam("typeDocument") String typeDocument) {
 myObjectService.get(typeDocument);
}


@XmlRootElement(name="myObject")
public class MyObject {
// Some properties
}

将是一种更容易维护的方法。您还可以将JSP用于HTML。

请参阅http://java.dzone.com/articles/resteasy-spring以获得一个好例子(使用Spring)。