Jboss7.x 删除JBoss EAP 6.2 Resteasy中存储的Restful服务中状态代码403404500的默认HTML响应
我在Jboss EAP 6.2+RestEasy 2.3.7中运行了一个Restful服务,我在代码中使用以下代码片段返回501404个错误代码: 对于404, 抛出新的WebApplicationException(未找到状态); 500美元, 抛出新的WebApplicationException() 当我测试我的服务以进行这些更改时,它会发回正确的状态代码,但主体具有html信息,如下图404所示 请指导我如何发送这些状态代码的空白响应 注: 我也试过下面的代码,但它不起作用Jboss7.x 删除JBoss EAP 6.2 Resteasy中存储的Restful服务中状态代码403404500的默认HTML响应,jboss7.x,resteasy,jboss-eap-6,Jboss7.x,Resteasy,Jboss Eap 6,我在Jboss EAP 6.2+RestEasy 2.3.7中运行了一个Restful服务,我在代码中使用以下代码片段返回501404个错误代码: 对于404, 抛出新的WebApplicationException(未找到状态); 500美元, 抛出新的WebApplicationException() 当我测试我的服务以进行这些更改时,它会发回正确的状态代码,但主体具有html信息,如下图404所示 请指导我如何发送这些状态代码的空白响应 注: 我也试过下面的代码,但它不起作用
ResponseBuilder respBldr = Response.status(Status.FORBIDDEN);
respBldr.type(MediaType.TEXT_HTML);
respBldr.entity("");
throw new WebApplicationException(respBldr.build());
错误页面在
ErrorReportValve
中生成。您可以利用内置的ExceptionMapper
s来生成自己的响应内容(有关文档,请参阅)。您可以使用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();
}
}
@Provider
公共类IllegalArgumentExceptionMapper实现ExceptionMapper{
@凌驾
公共响应(IllegalArgumentException异常){
返回Response.status(Response.status.BAD_请求).entity(exception.getMessage()).build();
}
}
这取决于你想提供什么,也取决于你的表现形式。我发布了我最近项目中的一些代码,其中还包含WebApplicationException
:
我主要使用包含代码的状态表示,有时使用有用的上下文细节。似乎是EAP 6.2.4中的一个bug。
附加链接()。还有一件事:您的屏幕截图显示一个404,禁止状态为403。不幸的是,github链接无法工作。即使在添加了自定义异常映射器之后,我仍然得到了响应主体。