我正在使用com.yammer.dropwizard.config.Environment addProvider方法在Jersey中注册提供程序。我也有一个自定义提供程序,它执行类似于Dropwizards自己的MessageBodyWriterProvider的任务。
Jersey似乎选择内置的MessageBodyWriter而不是我的自定义。所以我想如果我删除已注册的inbuild提供程序并注册我自己的,它将正常工作。
有没有办法用类名或其他方式删除已添加的提供程序?
答案 0 :(得分:3)
environment.getJerseyResourceConfig().getSingletons()
返回在Jersey注册的所有资源和提供者的可变Set<Object>
。使用instanceOf
检查对此进行简单迭代就足够了。
相关方法getProviderSingletons
不起作用,因为它返回一个新集。从该套装中删除不会从原版中删除。