0

私は REST Web サービスの初心者です。

HTMLまたはXMLを表示するRESTのプログラムを書きました。@Path アノテーションの値は@Path("{typeDocument}")です。GET には 2 つの方法があります。

@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 は、URL がいずれかの場合に常に getHtml() を実行します。

http://localhost:8080/sources/htmlまたはhttp://localhost:8080/sources/xml

しかし、IE は常に実行しgetXml()ます。

URL で定義された正しいメソッドを別のブラウザで実行する方法は?

4

1 に答える 1

1

TEXT_XML の代わりに MediaType.APPLICATION_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
}

維持するのがはるかに簡単な方法です。HTML に JSP を使用することもできます。

良い例 (Spring を使用) については、http://java.dzone.com/articles/resteasy-springを参照してください。

于 2010-06-03T11:04:09.563 に答える