删除JBoss EAP 6.2 Resteasy中部署的Restful服务中状态码403,404,500的默认HTML响应

时间:2015-03-13 19:57:58

标签: jboss7.x resteasy jboss-eap-6

我在Jboss EAP 6.2 + RestEasy 2.3.7中运行Restful服务,我在代码中使用以下代码段返回501,404错误代码:

对于404, 抛出新的WebApplicationException(Status.NOT_FOUND); 500, 抛出新的WebApplicationException();

当我测试我的服务进行这些更改时,它会发送回正确的状态代码,但正文中有html信息,如下面显示的404信息。

Error Snapshot - 404 请指导我如何发送这些状态代码的空白响应。

注意:

我也试过下面的代码,但它不起作用。

        ResponseBuilder respBldr = Response.status(Status.FORBIDDEN);
        respBldr.type(MediaType.TEXT_HTML);
        respBldr.entity("");
        throw new WebApplicationException(respBldr.build());

2 个答案:

答案 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();
    }
}

由您提供的内容也取决于您所提供的内容。我在最近的项目中发布了一些代码,其中还包含WebApplicationExceptionhttps://gist.github.com/mp911de/96991d30dbaa2604830e

的示例

我主要使用包含代码的状态表示,有时还使用有用的上下文详细信息。

答案 1 :(得分:0)

似乎是EAP 6.2.4中的错误。 附加链接(https://issues.jboss.org/browse/WFLY-1419)。