在我的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(!)(无论如何)内部服务器错误。
你们可以帮助我吗? 提前谢谢!
答案 0 :(得分:1)
我已经应对了这一点。 问题在于使用
.serverError()
自动意味着500错误代码作为服务器内部。
我们可以将响应状态设置为返回权限状态:
@GET
@Path("/getError")
public Response getError() {
return Response.status(412).build();
}