- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
假设我在 Dropwizard 中有一个端点,比方说
@GET
public Response foo() { throw new NullPointerException(); }
当我到达这个端点时,它会记录异常和所有内容,这太棒了!我喜欢它。我不太喜欢的是它向用户返回一个大的状态对象,其中包含 status: ERROR
(这很好)以及一个巨大的堆栈跟踪,我对此不太感兴趣。
显然,我最好自己捕获并处理异常,但它们有时会被漏掉。每次都围绕整个资源编写一个 try catch block 很好,但是 (a) 它很麻烦,并且 (b) 我总是更喜欢自动化解决方案而不是“你必须记住”的解决方案。
所以我想要的是执行以下操作的东西:
我觉得一定有一种内置的方法可以做到这一点——它已经以一种相对不错的方式处理异常——但搜索文档没有找到任何结果。有好的解决方案吗?
最佳答案
正如 reek 在评论中提到的,答案是 ExceptionMapper
。你需要这样的类(class):
@Provider
public class RuntimeExceptionMapper implements ExceptionMapper<RuntimeException> {
@Override
public Response toResponse(RuntimeException runtime) {
// ...
}
}
您可以在 toResponse
方法中执行任何您喜欢的日志记录或其他操作,返回值是实际发送给请求者的值。这样您就拥有了完全的控制权,并且应该设置合理的默认值——记住这是针对漏掉的错误,而不是针对您实际期望看到的错误!这也是根据您收到的异常类型设置不同行为的好时机。
要真正让它做任何事情,只需在主 dropwizard 应用程序的 run
方法中插入以下行(或类似行):
environment.jersey().register(new RuntimeExceptionMapper());
其中 environment
是应用程序的 run
方法的 Environment
参数。现在,当你在某处有一个未捕获的 RuntimeException
时,这将触发,而不是 dropwizard 之前正在做的任何事情。
注意:这仍然不是不仔细捕获和处理异常的借口!
关于java - 如何覆盖 Dropwizard 的默认资源异常处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41192968/
我在我的机器上集成了 dropwizards。 我公开了它们,但我正在寻找它们的含义的信息。 例如,我如何获得每秒的请求数?任何此类信息都可以在任何地方获得,因为我无法在官方网站上找到它。 谢谢。 最
我想知道“Counter”和“Meter”类维护的计数之间是否有区别?我了解仪表也测量费率,但我很好奇是否有一个计数器和一个仪表同时更新(计数器增加),我认为两个数字会相同。我这个假设错了吗? 最佳答
我在我的机器上集成了 dropwizards。 我公开了它们,但我正在寻找它们的含义的信息。 例如,我如何获得每秒的请求数?任何此类信息都可以在任何地方获得,因为我无法在官方网站上找到它。 谢谢。 最
为什么 dropwizard 有两个不同的 groupId。io.dropwizard和com.yammer.dropwizard 当你会在 git pom 文件中看到。它有 io.dropwizar
我的 dropwizard 日志仅将所有内容输出到控制台,并输出所有级别的日志记录。我想在开发输出到控制台期间为我自己的东西记录一些日志,但过滤掉噪音。我已经坚持了一段时间,自从我升级到 dropwi
我正在使用 dropwizard 版本 0.7.1。它被配置为使用“随机”(临时?)端口(server.applicationConnectors.port=0)。我想在启动后获得真正在使用的端口,但
关闭。这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 Stack Overflow 的 on-topic。 2年前关闭。
如何对Dropwizard管理门户进行身份验证,以限制普通用户访问它?请帮忙 最佳答案 在您的配置中,您可以在 http 下设置 adminUsername 和 adminPassword,如下所示:
我无法在 Dropwizard 应用程序的 run() 方法中注册多个资源。当我这样做时,我收到以下异常: Exception in thread "main" MultiException[java
我正在尝试从 dropwizard 应用程序构建 war 并进行部署。 我可以成功运行 jar 并访问我的休息服务。 有没有人从 dropwizard 应用程序创建并成功部署了一场 war ? 什么是
与 ObjectMapper ( com.fasterxml.jackson.databind ) 可以指定它应该忽略未知属性。这可以通过添加 @JsonIgnoreProperties(ignore
当我使用 Dropwizard 开发微服务时,我试图在 Dropwizard 的一个正在运行的实例/应用程序上拥有许多资源与在许多实例上拥有许多资源之间找到平衡。 例如 - 我有一个项目 A,有 3
我刚刚开始使用 Dropwizard 0.4.0,我想要一些有关 HMAC 身份验证的帮助。有人有什么建议吗? 先感谢您。 最佳答案 目前 Dropwizard 不支持开箱即用的 HMAC 身份验证,
我有一个 dropwizard 应用程序,它发出 yammer 指标,可以通过像 http://localhost:8081/admin/metrics 这样的 URL 进行监控。它以jsons的形式
我正在尝试为 Dropwizard 创建一个计划作业,该作业每分钟运行一次并查询数据库中的值。 为此,我需要在 initialize() 中注册一些 DAO 和服务。阶段,像这样: @Override
您如何将 dropwizard jdbi 2.78 升级到 jdbi 版本 3,因为我想使用其中包含的连接功能。 最佳答案 项目成员在这里。 我们将在 v3 最终版本之前发布更完整的迁移指南。与此同时
我在 Dropwizard 0.8 中使用 Basic Auth 并且我需要访问我的 SimpleAuthenticator 类中的请求上下文,而不是基本凭据。 也许我需要我自己的 AuthFacto
使用 Dropwizard 0.6.2 很容易做到这一点,但随着迁移到 0.7.x,它变得更加困难。我可以让它工作,但不是以完全合适的方式。我希望我的 RESTful API 在“/api/*”点可用
我是 dropwizard 的新手。我正在使用 0.8.5 版的 dropwizard。我有一个 dropwizard REST 服务,它在调用成功时返回 JSON,在调用不成功时返回 HTTL,例如
我是 dropwizard 的新手。我正在使用 0.8.5 版的 dropwizard。我有一个 dropwizard REST 服务,它在调用成功时返回 JSON,在调用不成功时返回 HTTL,例如
我是一名优秀的程序员,十分优秀!