WebApplicationException
全部标签 好吧,这个问题以前可能有人问过,但在我看过的所有网站上,关于“如何做”的解释告诉我我做的完全正确。我知道我不是,因为我在本地主机tomcat上收到500服务器错误,并且在我的服务器日志中收到以下错误:javax.ws.rs.WebApplicationException:com.sun.jersey.api.MessageException:AmessagebodywriterforJavaclasscom.myapp.domain.Location,andJavatypeclasscom.myapp.domain.Location,andMIMEmediatypeapplicatio
我正在开发Jetty/RESTEasy应用程序。如果我从我的REST端点之一抛出WebApplicationException(myResponse),它会将给定的响应发送到客户端。当过滤器检测到错误时,我想要相同的行为:它应该停止继续执行,并且它应该向用户提供不包含堆栈跟踪的清晰的JSON格式错误。显然,只需写入响应流并从doFilter方法中返回ing即可。但这不适用于doFilter调用的其他方法。抛出任何异常都会满足条件#1,但我还没有想出一个理智的方法来满足条件#2。(你可以在底部看到我最好的尝试。)正如Perception在他的回答中所解释的那样,WebApplicatio
在我们的(遗留)代码库中,我们以不同的方式抛出WebApplicationExceptions。为了对我们处理异常的方式进行排序-我想为这些WAE(和其他)创建一个ExceptionMapper。然而,我意识到Jersey的ExceptionMapper只映射未随实体一起抛出的WAE。例如:thrownewWebApplicationException(Response.status(500).build());此异常由ExceptionMapper捕获。thrownewWebApplicationException(Response.status(500).entity(WsReso
我正在创建JerseyWeb服务,我发现自己使用了上述两种异常类型。WebServiceException的构造函数允许您传递一个String作为原因,而WebApplicationException允许传入一个HTTP状态代码。包括构造函数的差异,拥有这两种异常类型的目的是什么?谢谢。 最佳答案 WebApplicationException是一种您可以停止执行REST资源并向您的客户端发送一些有意义的信息的方法。对于我一直在做的事情,我对这个异常进行了子类化,这样它就有一个实现,可以将JSON作为错误消息发送给客户端。如果出现错
我想在Jersey休息服务中捕获所有意外异常。因此我写了一个ExceptionMapper:@ProviderpublicclassExceptionMapperimplementsjavax.ws.rs.ext.ExceptionMapper{privatestaticLoggerlogger=LogManager.getLogManager().getLogger(ExceptionMapper.class.getName());@OverridepublicResponsetoResponse(Exceptione){logger.log(Level.SEVERE,e.getMe
我想在Jersey休息服务中捕获所有意外异常。因此我写了一个ExceptionMapper:@ProviderpublicclassExceptionMapperimplementsjavax.ws.rs.ext.ExceptionMapper{privatestaticLoggerlogger=LogManager.getLogManager().getLogger(ExceptionMapper.class.getName());@OverridepublicResponsetoResponse(Exceptione){logger.log(Level.SEVERE,e.getMe