私はプロジェクトにジャージを使用し、文字列からURIを解析するためにtringしています。
UriBuilder.fromUri("http://localhost:8000").build();
コードは簡単ですが、以下のエラーが表示されます
Java.lang.ClassNotFoundException: org.glassfish.jersey.internal.RuntimeDelegateImpl
プログラムがデリゲートを見つけることができないようです。既にインポートしたjavax.ws.rs.core.UriBuilder
とjersey-common 2.0
ビルドパスにデリゲートを含める必要があります。しかし、私はまだこのエラーを受け取ります。
誰かがそれを修正する方法を知っていますか?ありがとう!
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'
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
私の場合、問題はjavax.ws.rs-api-2.0.jarという名前の別のJarが使用されていることでした
そのjarを削除することで問題が解決しました。
私が使用した瓶:
<include name="jersey-client-1.9.jar" />
<include name="jersey-core-1.9.jar" />
<include name="jersey-multipart-1.9.jar" />
<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は機能しました。