私の Wildfly 8.1 インストールでは、クラスを JSON にマーシャリングするために Jackson (Jackson 2 ではなく) を使用しているという興味深い問題があります。クラスで使用している JAXB アノテーションを利用するために、Jettison を使用したいと考えています。
サーバーが Jackson の代わりに Jettison を使用するように強制するために、次の手順を実行しました。
POM.xml の依存関係を変更して、resteasy-jettison-providerモジュールに依存するように、スコープを提供どおりに設定しました
< 依存関係 >
< groupId >org.jboss.resteasy</ groupId >
< artifactId >resteasy-jettison-provider</ artifactId > < バージョン >3.0.8.Final</ バージョン >
< スコープ >提供</ スコープ >
</ 依存関係>WEB-INF ディレクトリのjboss-deployment-structure.xmlを変更して、jettison モジュールを含め、すべての jackson モジュールを除外しました。
< jboss-deployment-structure >
< deployment >
< 除外 >
< module name="org.jboss.resteasy.resteasy-jackson-provider" />
< module name="com.fasterxml.jackson.core.jackson-core" / >
< モジュール名="com.fasterxml.jackson.core.jackson-annotations" />
< モジュール名="com.fasterxml.jackson.core.jackson-databind" />
< モジュール名="com.fasterxml.jackson. jaxrs.jackson-jaxrs-json-provider" />
< モジュール名="org.jboss.resteasy.resteasy-jackson2-provider" />
</ 除外 >
< 依存関係 >
< モジュール名="org.jboss.resteasy.resteasy-jettison-provider" />
</ 依存関係 >
</ 展開 >
</ jboss-展開構造 >
サーバーを起動したら、簡単な JSON を送信してアプリケーションにログインします。
{
"authRequest":
{
"appLogin":"restful",
"appPassword":"mypassword"
}
}
ただし、このコード スニペットを送信すると、サーバーから次の例外が発生します。
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: 認識されないフィールド「authRequest」(クラス com.myapp.AppAuthRequest)、無視可能としてマークされていません
その例外から、私の設定にもかかわらず、ジャクソンがまだ使用されているようです。
私が間違っていることや、どのような設定ミスがあるかを誰かが指摘できますか?