2

我正在使用 com.yammer.dropwizard.config.Environment addProvider 方法在 Jersey 中注册提供程序。我也有一个自定义提供程序,它执行类似于 Dropwizards 自己的 MessageBodyWriterProvider 的任务。

Jersey 似乎选择了内置的 MessageBodyWriter 而不是我的自定义。所以我认为如果我删除已注册的内置提供程序并注册我自己的,它将正常工作。

有没有办法用类名或其他方式删除已经添加的提供者?

4

1 回答 1

3
environment.getJerseyResourceConfig().getSingletons()

Set<Object>返回在 Jersey 注册的所有资源和提供者的可变变量。对此进行检查的简单迭代instanceOf就足够了。

相关方法getProviderSingletons将不起作用,因为它正在返回一个新集合。并且从该集合中移除不会从原始集合中移除。

于 2013-07-29T05:05:43.347 回答