1

私の resteasy サービスでは、次のように、クライアントの要求に応じてメディア ファイルを返したいと考えています。

サーバー側から (Tomcat 6):

@GET
@Path("/getXML/{skinId}/{key}")
@Produces("text/xml")
public Response getXMLResource(@PathParam("key") String key, @PathParam("skinId") String skinId) {
  // Reading a file from disk...
  return Response.ok(file, type).build();
}

そしてクライアント側から:

final URL uri = new URL("http://localhost:8080/service/getXML");
final InputStream stream = uri.openStream();

問題:

カスタム HTTP エラー (リソースが存在しません。サーバーがビジーです。後で試してください) を返したいです。

@GET
@Path("/getError")
@Produces("text/xml")
public Response getError() {
  return Response.serverError().status(333).build();
}

しかし、エラー メソッドにアクセスしようとすると、500 (!) (いずれにせよ) 内部サーバー エラーが発生します。

これで私を助けてくれませんか?前もって感謝します!

4

1 に答える 1

2

私はこれに対処しました。問題は使用していた

.serverError()

サーバー内部として自動的に500エラーコードを意味します。

正しいステータスを返すように応答のステータスを設定するだけです。

@GET
@Path("/getError")
public Response getError() {
  return Response.status(412).build();
}
于 2012-12-17T08:53:32.547 に答える