我在Jboss EAP 6.2 + RestEasy 2.3.7中运行Restful服务,我在代码中使用以下代码段返回501,404错误代码:
对于404, 抛出新的WebApplicationException(Status.NOT_FOUND); 500, 抛出新的WebApplicationException();
当我测试我的服务进行这些更改时,它会发送回正确的状态代码,但正文中有html信息,如下面显示的404信息。
请指导我如何发送这些状态代码的空白响应。
注意:
我也试过下面的代码,但它不起作用。
ResponseBuilder respBldr = Response.status(Status.FORBIDDEN);
respBldr.type(MediaType.TEXT_HTML);
respBldr.entity("");
throw new WebApplicationException(respBldr.build());
答案 0 :(得分:0)
错误页面在ErrorReportValve
中生成。您可以使用内置的ExceptionMapper
来生成自己的回复内容(有关文档,请参阅http://docs.oracle.com/javaee/6/api/javax/ws/rs/ext/ExceptionMapper.html)。您可以使用WebApplicationException
,但不限于此。 IllegalArgumentException
的示例可能如下所示:
@Provider
public class IllegalArgumentExceptionMapper implements ExceptionMapper<IllegalArgumentException> {
@Override
public Response toResponse(IllegalArgumentException exception) {
return Response.status(Response.Status.BAD_REQUEST).entity(exception.getMessage()).build();
}
}
由您提供的内容也取决于您所提供的内容。我在最近的项目中发布了一些代码,其中还包含WebApplicationException
:https://gist.github.com/mp911de/96991d30dbaa2604830e
我主要使用包含代码的状态表示,有时还使用有用的上下文详细信息。
答案 1 :(得分:0)
似乎是EAP 6.2.4中的错误。 附加链接(https://issues.jboss.org/browse/WFLY-1419)。