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 回答