0

我是 REST Web 服务的初学者。

我编写了一个 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() 当 URL 是

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

但是 IE 总是执行getXml().

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

4

1 回答 1

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)。

于 2010-06-03T11:04:09.563 回答