Jboss 7.1.1 にデプロイしたい残りの Web アプリケーションが 2 つあります。サーバ。
両方のアプリの REST リクエストは、Json を生成および消費します。オブジェクトのシリアル化と逆シリアル化には jackson プロバイダーを使用します。
ここで、Web アプリケーションごとにカスタム ObjectMapper 構成が必要です。この問題を解決するために、ContextResolver を実装する @Provider クラスを追加しました。プロジェクトごとに 1 つ。フェ。私のクラスの1つは次のようになります。
@provider
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class JacksonConfig implements ContextResolver<ObjectMapper> {
private final ObjectMapper objectMapper;
public JacksonConfig()
{
objectMapper = new ObjectMapper();
objectMapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
}
@Override
public ObjectMapper getContext(Class<?> objectType) {
return objectMapper;
}
}
このプロジェクトの 1 つだけを jboss にデプロイするとうまくいきます。両方をデプロイしようとすると、最初に初期化されたプロジェクトのみが定義済みの objectMapper を使用します。もう 1 つは、ContextResolver クラスから getContext メソッドを呼び出すことはありません。何が間違っている可能性がありますか?
編集!:
多くの試行錯誤の後、json の解析方法を jackson から staxon に変更することにしました。少なくともこの方法がうまくいくことを願っています。しかし、そうではありません...シリアライゼーションは、デプロイされた両方のアプリケーションで完全に機能します。しかし、やはり jboss は逆シリアル化プロセスで staxon の代わりに jackson を使用することにしました。繰り返しますが、展開後に最初に呼び出すアプリケーションは常に正常に機能します。しかし、例外を呼び出すジャクソン(理由はわかりません...)を使用する2番目のもの。いつも...
Jbossに問題はありますか?おそらく私は何か間違ったことをしているだけですが、どこにあるのかわかりません。誰が私がどこを見ればよいか考えていますか?