web-dev-qa-db-fra.com

org.glassfish.jersey.internal.RuntimeDelegateImpl NOT FOUND

J'utilise jersey pour mon projet et j'essaie d'analyser un URI à partir d'une chaîne.

UriBuilder.fromUri("http://localhost:8000").build();

Le code est simple, mais j'obtiens une erreur ci-dessous

Java.lang.ClassNotFoundException: org.glassfish.jersey.internal.RuntimeDelegateImpl

Il semble que le programme ne trouve pas le délégué. J'ai déjà importé javax.ws.rs.core.UriBuilder et avoir jersey-common 2.0 qui devrait contenir le délégué dans mon chemin de génération. Mais je reçois toujours cette erreur.

Est-ce que quelqu'un sait comment le réparer? Merci!

27
Spark8006

Si vous utilisez Maven, utilisez la dépendance suivante:

<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-common</artifactId>
    <version>2.22.2</version>
    <scope>test</scope>
</dependency>

Pour Gradle, les éléments suivants fonctionneront:

testCompile 'org.glassfish.jersey.core:jersey-common:2.22.2'
60
Archimedes Trajano

En développant contre un runtime Wildfly 10.1, je ne voulais pas introduire Jersey dans mes builds. Avec Gradle j'ai utilisé

testRuntime "org.jboss.resteasy:resteasy-jaxrs:$versions.resteasy"

la version resteasy est 3.0.19.Final. Ce pot contient

META-INF/services/javax.ws.rs.ext.RuntimeDelegate

avec une entrée

org.jboss.resteasy.spi.ResteasyProviderFactory
6
Thomas Newman

Dans mon cas, le problème était lié à l'utilisation d'un autre Jar nommé: javax.ws.rs-api-2.0.jar

La suppression de ce pot a résolu mon problème.

Le pot que j'ai utilisé:

<include name="jersey-client-1.9.jar" />
<include name="jersey-core-1.9.jar" />
<include name="jersey-multipart-1.9.jar" />
3
Shahadet
<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-common</artifactId>
    <version>2.26</version>
    <scope>test</scope>
</dependency>

J'ai rencontré des problèmes avec Java 8 et jersey-common 2.22.2 mais 2.26 ont fonctionné.

3
Adrienne Dunham