问题标签 [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.

0 投票
2 回答
1920 浏览

java - JAXRS/Jersey 2 - 验证错误不会调用 ExceptionMapper

使用最新的 Jersey (2.22.1),我已经成功地为各种需求创建了我的自定义验证器。但是当发生 ConstraintViolationException 时,不会调用我的自定义ExceptionMapper(在 web.xml 中注册为 a ),尽管它被定义为.providerExceptionMapper<Throwable>

web.xml

默认异常映射器

使用我的调试器,我可以在类 org.glassfish.jersey.server.ServerRuntime 的第 596 行中看到,解析的映射器不是我的,而是一个org.glassfish.jersey.server.validation.internal.ValidationExceptionMapper.

我如何告诉 JerseyDefaultExceptionMapper在 a 的情况下使用 my ConstraintViolationException

PS:我已经尝试过这里建议的选项:如果收到无效的 JSon而没有运气,则不会调用 ExceptionMapper。

0 投票
3 回答
3243 浏览

json - 泽西岛无法捕捉到任何杰克逊异常

对于我的 REST api,我使用 jersey 和 ExceptionMapper 来捕获全局异常。它适用于我的应用程序抛出的所有异常,但我无法捕获杰克逊抛出的异常。

例如,我的一个端点接受一个包含枚举的对象。如果请求中的 Json 具有不在枚举球衣中的值,则抛出此异常

即使我创建了这个映射器

代码永远不会到达这个映射器。

为了捕获这些异常,我们需要做些什么吗?

编辑 注意:我只是尝试不那么通用,而不是 JsonMappingException 我使用 InvalidFormatException 在这种情况下调用映射器。但我仍然不明白,因为 InvalidFormatException 扩展了 JsonMappingException 并且也应该被调用

0 投票
2 回答
292 浏览

spring - Spring JsonExceptionMapper ExceptionMapper 处理。

启动服务器时,我的 weblogic 控制台出现以下错误。

严重:在参数索引 0 处缺少构造函数公共 com.test.mine.exception.JsonExceptionMapper(java.lang.String,com.fasterxml.jackson.core.JsonLocation) 的依赖项 严重:缺少构造函数公共 com.test.mine 的依赖项。参数索引 1 处的 exception.JsonExceptionMapper(java.lang.String,com.fasterxml.jackson.core.JsonLocation)

下面是我的java代码。


0 投票
1 回答
3095 浏览

junit - 泽西岛测试 - 不调用 ExceptionMapper

我有 REST Web 服务,我使用 Jersey Test、Mockito、Junit 进行测试。当 Web 服务方法成功执行时,我得到正确的响应。如果数据无效,则会引发自定义异常,该异常必须由 ExceptionMapper 处理。它应该返回相同的结构响应但具有不同的代码。ExceptionMapper 在非测试环境中运行良好。但是,在测试执行日志显示后:

我用:

由测试类扩展的模拟服务的缩短版本:

如何从 ExceptionMapper 获得响应?

0 投票
1 回答
196 浏览

jersey - 泽西 SQLException 映射器未调用

这是我的 SqlExceptionMapper

在这里,我在函数的 catch 块中抛出异常

这是我的 web.xml

我已经调试了我的代码并且我的 catch 块正在抛出 SQLException,唯一的问题是它没有映射到我创建的映射器。

0 投票
1 回答
1178 浏览

java - Jersey 错误地调用子资源

我正在使用 JAX-RS 学习 RESTful Web 服务。我有一个MessageResource和一个子资源CommentResource

在我的MessageResource我用测试方法映射了评论子资源,我在MessageResource课堂上发表了评论,因为我不想CommentResource被调用。

我有CommentResource以下子资源:

我创建了一个通用异常映射器,它映射到Throwable类。它是为此目的而创建的,如果服务器端发生任何异常,而不是显示 Tomcat 错误报告页面,应该发送有意义的消息。

此外,当我通过调用 url 来测试我的通用异常映射器时

http://localhost:8080/messenger/webapi/messa

它没有映射到MessageResource. 它正在调用CommentResource 以下方法:

如果我评论上述方法,我会在 Postman 中得到适当的回应。

任何人都可以解释这种行为。提前致谢。

0 投票
1 回答
831 浏览

exception-handling - JAX-RS 异常映射器在 Grizzly 容器中不起作用

与团队一起开发 Jersey Web 应用程序,随着项目变得越来越大,我们决定从 Tomcat 切换到 Grizzly,以允许在不同的端口号上部署项目的一部分。我现在发现,我们的自定义异常处理现在无法正常工作,相反,我总是得到灰熊的 html 页面。

示例异常:

映射器:

我不确定问题来源在哪里,如果需要,我可以提供更多信息/代码。有什么问题,我可以尝试什么?

编辑

主类:

EDIT2: 基于这个问题,我尝试使用这个ServerProperties.RESPONSE_SET_STATUS_OVER_SEND_ERROR, "true"属性,它只提供了一点帮助。发生异常时,我仍然会看到 html grizzly 页面,但现在我在页面正文中看到了我的异常(+堆栈跟踪)。

0 投票
1 回答
75 浏览

java - 您可以将 Jersey 自定义 ExceptionMappers 从 .jar 战争文件导入 .war 文件吗?

运行 JUnit 测试时,我不断收到此错误。它仅在我尝试将 Jersey 自定义 ExceptionMappers 从 .jar 文件导入到我的 .war 文件时发生。

我知道映射器在 .war 文件中时可以正常工作,但我有两个单独的模块需要它们,并且不希望复制映射器以在每个模块中都有一个。

有谁知道如何从 .jar 文件中导入 ExceptionMapper?

0 投票
1 回答
1184 浏览

java - Jersey 测试 - ExceptionMapper - HTTP 状态不是 200 时的 UniformInterfaceException

我必须使用 jersey-test-framework-grizzly2 测试 Jersey 1.19。有注册 REST 端点和异常映射器类的配置类:

当我执行/测试返回 HTTP 状态 200 的 REST 端点时,它运行良好。

如果抛出异常,异常映射器会很好地处理它并形成返回对象 javax.ws.rs.core.Response 并带有错误代码:

但是,我得到

当我尝试在我的 JUnit 测试中断言 Response 时。如何获得格式良好的响应而不是 UniformInterfaceException?

0 投票
0 回答
561 浏览

jax-rs - 异常映射器不适用于 Wildfly RestEasy

我有网络资源

我的应用配置类

例外

异常映射器

在我的示例中,异常映射器不起作用。我试图通过java(将异常映射器类添加到应用程序配置中的hashmap)或web.xml(包括它在上下文参数中)来配置它。我的 wildfly 代码在 Java 8 类结束工作:ThreadPoolExecutor.class。我认为wildfly在我对资源url的示例请求中结束了它的所有任务。我在抛出异常之前编码工作正常,但在它没有对我的测试请求返回任何响应之后。

有人帮忙吗?