У меня есть проект Dropwizard (с использованием Jersey 2.x), где мне нужно использовать другую библиотеку, которая имеет зависимость от jersey-client от 1.x и I ' у меня есть проблемы с тем, чтобы оба сосуществовали на пути к классам. Похоже, что происходит то, что HK2 находит что-нибудь, что реализует провайдеры от javax.ws.rs. * И пытается создать их. Когда это класс из Джерси 1.x, инъекции зависимостей, что она нуждается не там, и я в конечном итоге с большим количеством ошибок, таким как:Получение Jersey 1.x и 2.x для сосуществования
Caused by: java.lang.IllegalArgumentException: The MultiPartConfig instance we expected is not present. Have you registered the MultiPartConfigProvider class?
at com.sun.jersey.multipart.impl.MultiPartReaderClientSide.<init>(MultiPartReaderClientSide.java:107)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1107)
at org.jvnet.hk2.internal.ClazzCreator.createMe(ClazzCreator.java:274)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:368)
Есть ли способ, чтобы получить Джерси 2.x/HK2 к игнорировать что-либо в com.sun.jersey. * место в упаковке?
Как вы смогли получить экземпляр ServiceFinder? – badunk
В моем переопределении io.dropwizard.Application # initialize я добавил это: ServiceFinder.setIteratorProvider (новый Jersey2ServiceIteratorProvider()); –