Org.glassfish.jersey.internal.RuntimeDelegateImpl NOT FOUND
Я использую трикотаж для моего проекта и tring для анализа URI из строки.
UriBuilder.fromUri("http://localhost:8000").build();
Код прост, но я получаю сообщение об ошибке ниже
java.lang.ClassNotFoundException: org.glassfish.jersey.internal.RuntimeDelegateImpl
Кажется, программа не может найти делегата. Я уже импортировал javax.ws.rs.core.UriBuilder
и имел jersey-common 2.0
, который должен содержать делегат в моем пути сборки. Но я все еще получаю эту ошибку.
Кто-нибудь знает, как это исправить? Спасибо!
Ответы
Ответ 1
Если вы используете Maven, используйте следующую зависимость:
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.22.2</version>
<scope>test</scope>
</dependency>
Для Gradle будет работать следующее:
testCompile 'org.glassfish.jersey.core:jersey-common:2.22.2'
Ответ 2
Развиваясь против среды Wildfly 10.1, я не хотел вводить Джерси в мои сборки. С Gradle я использовал
testRuntime "org.jboss.resteasy:resteasy-jaxrs:$versions.resteasy"
версия resteasy 3.0.19.Final. Эта банка содержит
META-INF/services/javax.ws.rs.ext.RuntimeDelegate
с записью
org.jboss.resteasy.spi.ResteasyProviderFactory
Ответ 3
В моем случае проблема заключалась в том, что другой Jar использовался по имени:
javax.ws.rs-апи-2.0.jar
Удаление этой банки разрешило мою проблему.
Ящик, который я использовал:
<include name="jersey-client-1.9.jar" />
<include name="jersey-core-1.9.jar" />
<include name="jersey-multipart-1.9.jar" />
Ответ 4
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.26</version>
<scope>test</scope>
</dependency>
Я столкнулся с проблемами с Java 8 и jersey-common 2.22.2, но 2.26 работал.