jjzjj

WebApplicationException

全部标签

javax.ws.rs.WebApplicationException : com. sun.jersey.api.MessageException:Jersey 的 Java REST Web 服务中的 JSON 支持

好吧,这个问题以前可能有人问过,但在我看过的所有网站上,关于“如何做”的解释告诉我我做的完全正确。我知道我不是,因为我在本地主机tomcat上收到500服务器错误,并且在我的服务器日志中收到以下错误:javax.ws.rs.WebApplicationException:com.sun.jersey.api.MessageException:AmessagebodywriterforJavaclasscom.myapp.domain.Location,andJavatypeclasscom.myapp.domain.Location,andMIMEmediatypeapplicatio

java - 如何在不向用户显示堆栈跟踪的情况下处理 servlet 过滤器中的错误状态?

我正在开发Jetty/RESTEasy应用程序。如果我从我的REST端点之一抛出WebApplicationException(myResponse),它会将给定的响应发送到客户端。当过滤器检测到错误时,我想要相同的行为:它应该停止继续执行,并且它应该向用户提供不包含堆栈跟踪的清晰的JSON格式错误。显然,只需写入响应流并从doFilter方法中返回ing即可。但这不适用于doFilter调用的其他方法。抛出任何异常都会满足条件#1,但我还没有想出一个理智的方法来满足条件#2。(你可以在底部看到我最好的尝试。)正如Perception在他的回答中所解释的那样,WebApplicatio

java - 与实体一起抛出的 WebApplicationExceptions 的 ExceptionMapper?

在我们的(遗留)代码库中,我们以不同的方式抛出WebApplicationExceptions。为了对我们处理异常的方式进行排序-我想为这些WAE(和其他)创建一个ExceptionMapper。然而,我意识到Jersey的ExceptionMapper只映射未随实体一起抛出的WAE。例如:thrownewWebApplicationException(Response.status(500).build());此异常由ExceptionMapper捕获。thrownewWebApplicationException(Response.status(500).entity(WsReso

java - Jax-RS( Jersey )上下文中 WebApplicationException 和 WebServiceException 的区别

我正在创建JerseyWeb服务,我发现自己使用了上述两种异常类型。WebServiceException的构造函数允许您传递一个String作为原因,而WebApplicationException允许传入一个HTTP状态代码。包括构造函数的差异,拥有这两种异常类型的目的是什么?谢谢。 最佳答案 WebApplicationException是一种您可以停止执行REST资源并向您的客户端发送一些有意义的信息的方法。对于我一直在做的事情,我对这个异常进行了子类化,这样它就有一个实现,可以将JSON作为错误消息发送给客户端。如果出现错

java - 捕获所有异常并返回 Jersey 中的自定义错误

我想在Jersey休息服务中捕获所有意外异常。因此我写了一个ExceptionMapper:@ProviderpublicclassExceptionMapperimplementsjavax.ws.rs.ext.ExceptionMapper{privatestaticLoggerlogger=LogManager.getLogManager().getLogger(ExceptionMapper.class.getName());@OverridepublicResponsetoResponse(Exceptione){logger.log(Level.SEVERE,e.getMe

java - 捕获所有异常并返回 Jersey 中的自定义错误

我想在Jersey休息服务中捕获所有意外异常。因此我写了一个ExceptionMapper:@ProviderpublicclassExceptionMapperimplementsjavax.ws.rs.ext.ExceptionMapper{privatestaticLoggerlogger=LogManager.getLogManager().getLogger(ExceptionMapper.class.getName());@OverridepublicResponsetoResponse(Exceptione){logger.log(Level.SEVERE,e.getMe