问题标签 [exceptionmapper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
exception - Junit:使用异常映射器测试抛出的异常
如何在使用异常映射器时使用 Junit4 测试抛出的异常?
java - Dropwizard将自定义异常反序列化为JSON?
我在 Dropwizard 服务中创建了一个新的异常类,它扩展了 BadRequestException。
当我最初抛出那个异常时,我只得到了反序列化的 BadRequestException,减去了附加属性(validationFailures)
这是因为 Dropwizard 的内部有一个默认的异常映射器,它允许 Jetty/Jackson 了解域异常以及如何发送适当的 HTTP 响应。
要克服这个问题,您可以实现自己的 ExceptionMapper 类并将其注册到 Dropwizard。
然而这个问题是它反序列化了超级(Throwable),所以你会在我不想要的响应中添加每个继承的属性。
为了解决这个问题,我尝试像这样添加 Jackson 注释:
这不是最佳解决方案,因为除了 stackTrace 之外还有几个属性我需要忽略。
总而言之,我怎样才能让 Dropwizard 正确反序列化我的 CustomException 类而没有我不需要的所有额外混乱?
java - Jersey ExceptionMapper,依赖另一个 ExceptionMapper
我有ExceptionMapper
一个通用公共库的一部分:
现在,在我的具体项目中,我有自己的ExceptionMapper
:
我想将其转换SomeAdHocException
为GenericException
并让GenericExceptionMapper
负责进一步处理。我尝试了以下两个选项,但都不起作用:
[1]GenericException
投入SomeAdHocExceptionMapper
:
[2]GenericExceptionMapper
注入SomeAdHocExceptionMapper
:
这两个选项都给出了依赖性异常。
我该如何解决这个问题?
java - 使用单个 ExceptionMapper 捕获 Jackson 抛出的任何异常
我有一个使用Jackson处理 JSON 转换的 JAX-RS 项目。
当 Jackson 抛出异常时,它会自动返回一个带有错误描述的字符串。
因为我想返回一个自定义 JSON 对象,所以我创建了一个ExceptionMapper。
问题是,只有当我准确指定抛出异常的类型时,它才会捕获异常。
例如,当发送到方法的 JSON 包含未知属性时,此方法有效:
但是,如果我更改UnrecognizedPropertyException
为PropertyBindingException
(第一个扩展的),它将不起作用。
简而言之:
如何创建一个通用异常映射器来捕获 Jackson(或我的应用程序的任何其他组件)抛出的任何异常?
spring-boot - restcontroller 使用 exceptionMapper,这样 jersey 和 restcontroller 可以共存
我正在使用带有 Jersey 1 的 spring boot。使用 ExceptionMapper 来处理全局异常。现在我们计划迁移到 Spring MVC 以实现宁静的目的。因此,更改少数端点以使用调度程序 servlet。有没有办法使用 exceptionMapper 处理所有异常。存在 ControllerAdvice 来为 spring mvc 全局处理异常,但无论如何我可以暂时使用 ExceptionMapper 提供程序吗?
谢谢
java - Restful Spring 启动应用程序中的异常映射
我有一个自定义的异常类,我想在发生异常时将其作为 json 返回。
SpringCacheException.java
RestExceptionHandler.java
抛出异常:-
在这里,我从数据库中删除联系人表并引发异常,我得到以下长响应。
我只想要一个 SpringCacheException 类型的 json,但我得到的这个长 json 数据不正确。谁能告诉我我在哪里做错了。谢谢 !
exception - 泽西岛的多个 ExceptionMapper
假设我有两个 ExceptionMapper:
如果抛出 WebApplicationException 或 WebApplicationException 的子异常,哪个映射器会处理它们?有人可以解释一下吗?
谢谢
java - 如何将 JSON 解析相关错误映射到球衣中的 json 响应
我定义了一个数据类型及其 API:
{
"name": "xxx"
}
如果我摆姿势一切都很好
但是当我发布时{ "name1": "xxx" }
,我得到了以下text/plain
回复:
我更喜欢将上述错误转换为 JSON 响应。但是事件我添加了以下异常映射器,它没有返回 JSON 响应。
为什么我上面的异常映射器无法捕获球衣解析错误。有人可以向我解释吗?谢谢
更新
我有两个问题:
1、如何做出响应来application/json
代替text/plain
?
2、为什么我的异常映射器没有捕捉到引发的异常并将其映射到json响应?
更新
我添加了以下映射器:
现在,我可以得到 json 响应:
{
"code": 500,
"message": "Unrecognized field \"name1\" (class com.xxx.datatypes.DataType), not marked as ignorable (1 known properties: \"name\"])\n at [Source: org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream@1d8cd12a; line: 2, column: 15] (through reference chain: class com.xxx.datatypes.DataType[\"name1\"])"
}
我还有两个问题:
1、为什么我的通用异常映射器无法捕获它。
2、 json映射异常映射器贴出时无法映射如下异常(逗号,添加测试用)Unexpected character ('}' (code 125)): was expecting double-quote to start field name
at [Source: org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream@7615743c; line: 3, column: 2]
{"name": "xxxx",}
java - 由 ExceptionMapper 捕获的 jaxrs 中的自定义 WebApplicationExceptions 显示在服务器日志中
我使用以下 Exceptionmapper 将我的 jaxrs rest api 中的 WebApplicationExceptions 映射到响应。
这工作正常,它完全符合它应该做的事情,但是当我抛出自定义错误时,例如throw new NotFoundException("custom message");
堆栈跟踪显示在我的服务器日志中。谁能解释一下?或者有人知道解决方案吗?
TL;博士;
出于某种原因,当我从我的 jax-rs 代码中抛出 WebApplicationExceptions 时,我的 ExceptionMapper 会处理错误但仍会抛出它,因此它会显示在服务器日志中。
有什么解决办法吗?
java - 使用 ExceptionMapper 记录 CLIENT_ERRORs
我正在开发一个使用 Dropwizard 的应用程序,它具有 ExceptionMapper 的这种实现:https ://github.com/dropwizard/dropwizard/blob/master/dropwizard-jersey/src/main/java/io/dropwizard/jersey/errors /LoggingExceptionMapper.java
这个实现的问题是,即使它捕获了 4** 和 5** 错误,它也只记录了 5** 错误。
我需要实现 ExceptionMapper,以便根本不使用 LoggingExceptionMapper,并且我的 CustomExceptionMapper 同时记录 CLIENT_ERRORs 和 SERVER_ERRORs。
我想知道我的应用程序如何知道它需要使用 CustomExceptionMapper 而不是 Dropwizard 类?
将 CLIENT_ERROR 添加到 if 条件以注销所有错误是否就足够了?
还是有更好的方法来做到这一点?