我是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/html或http://localhost:8080/sources/xml
但是IE总是会占用getXml()
。
如何在不同的浏览器中执行URL定义的正确方法?
答案 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)。