ここに示されている例に正確に基づいてファイルをアップロードしようとすると、エラーが発生します サンプル
エラーは
サーブレットcom.testapp.rest.JaxRsActivatorに例外を割り当てます:java.lang.RuntimeException:クラスorg.jboss.resteasy.core.AsynchronousDispatcherのパブリックコンストラクターが見つかりません
これはどういう意味ですか?
JBoss 7.xにデプロイする場合は、Resteasy依存関係のスコープをに変更する必要がありますprovided
。これは、これらの特定のライブラリがすでにモジュールとしてJBossに含まれているためです。
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>2.2.1.GA</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<version>2.2.0.GA</version>
<scope>provided</scope>
</dependency>
このエラーが発生したときにwildfly10を使用してアプリケーションをデプロイし、上記の解決策を試しましたが、うまくいきませんでした。最後に、resteasy-jaxrs
Maven除外を使用してjarを除外する必要がありました。
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-servlet-initializer</artifactId>
<version>3.0.19.Final</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<artifactId>resteasy-jaxrs</artifactId>
<groupId>org.jboss.resteasy</groupId>
</exclusion>
</exclusions>
</dependency>
魔法のように
もう1つ、安心できるかどうかを確認してください
$ mvn dependency:tree | grep "resteasy"
[INFO] \- org.jboss.resteasy:resteasy-jaxrs:jar:3.0.10.Final:provided
[INFO] +- org.jboss.resteasy:jaxrs-api:jar:3.0.10.Final:provided
おそらく、RESTeasyのドキュメントには、JBossに含まれているRESTeasyをアップグレードする方法に関する情報が含まれています。これは、上記のように、別のバージョンを使用しようとすると頭痛の種になる可能性があります。
簡単に言うと、この依存関係をpom.xmlファイルに追加してテストすることができます。
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>2.2.1.GA</version>
<scope>provided</scope>
</dependency>