删除Jersey中添加的提供程序

时间:2013-07-22 18:05:55

标签: jersey provider dropwizard

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

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

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

1 个答案:

答案 0 :(得分:3)

environment.getJerseyResourceConfig().getSingletons()

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

相关方法getProviderSingletons不起作用,因为它返回一个新集。从该套装中删除不会从原版中删除。